diff options
| -rw-r--r-- | nvim/ftplugin/php.lua | 8 | ||||
| -rw-r--r-- | nvim/init.lua | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/nvim/ftplugin/php.lua b/nvim/ftplugin/php.lua index a496f8a..33276d5 100644 --- a/nvim/ftplugin/php.lua +++ b/nvim/ftplugin/php.lua @@ -1,4 +1,10 @@ -local copy_indent_macro = "<Esc>0\"_d$?.<CR><cmd>noh<CR>0\"myw<C-o>0\"_d$\"mpa" +local copy_indent_macro = "<Esc>0\"_D" -- clear current line + .. "?.<CR>" -- find first non-empty line above + .. "^\"yy0" -- copy indentation to y register + .. "<C-o>" -- return to original line + .. "\"yp" -- paste y register + .. "<cmd>noh<CR>" -- clear highlight + .. "A" -- enter insert mode vim.keymap.set({ "n" }, "o", "o" .. copy_indent_macro, { buffer = 0 }) vim.keymap.set({ "n" }, "O", "O" .. copy_indent_macro, { buffer = 0 }) diff --git a/nvim/init.lua b/nvim/init.lua index af18477..c0182b1 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -64,7 +64,13 @@ vim.keymap.set("v", ">", ">gv") vim.keymap.set("v", "<", "<gv") -- copy indent from line above -local copy_indent_macro = "<Esc>0\"_d$?.<CR><cmd>noh<CR>0\"myw<C-o>0\"_d$\"mpa" +local copy_indent_macro = "<Esc>0\"_D" -- clear current line + .. "?.<CR>" -- find first non-empty line above + .. "^\"yy0" -- copy indentation to y register + .. "<C-o>" -- return to original line + .. "\"yp" -- paste y register + .. "<cmd>noh<CR>" -- clear highlight + .. "A" -- enter insert mode vim.keymap.set("i", "<S-Tab>", copy_indent_macro) -- insert line break under cursor in normal mode vim.keymap.set("n", "<C-j>", function() |
