有时在 vim 中编码时,我想开始新行并将光标对齐到特定字符下。例如:
(,) <$> foo
^ -- I want to align here to continue typing like:
<*> bar
有没有简单的方法可以做到这一点?
更新:如果能够同时拆分行和对齐,那就太好了。假设我正在编辑行
(,) <$> foo <*> bar
^ -- cursor here
我想分割这条线,以便它对齐为
(,) <$> foo
<*> bar
^ -- cursor here
答案1
和
:set virtualedit=all
您可以先创建新行(例如o<Esc>
),将光标定位在该“特定字符”上(例如使用kf{char}
),然后将光标移动到新行的同一列并开始编辑(ji
)。
答案2
如果你频繁使用 0 或 $ 来跳转,
set virtualedit=insert,block
而不是
set virtualedit=all
set virtualedit=insert,block
" toggle virtualedit
let s:anywhere = 0
func! Cursor_anywhere_01()
if s:anywhere == 0
set virtualedit=insert,block
" set virtualedit=all # 会导致光标跳转不舒服 let s:anywhere = 1
else
set virtualedit=
let s:anywhere = 0
endif
set virtualedit?
endfunc
nnoremap <Leader>aw :call Cursor_anywhere_01()<cr>