![如何将光标对齐到特定字符下方?](https://linux22.com/image/1388920/%E5%A6%82%E4%BD%95%E5%B0%86%E5%85%89%E6%A0%87%E5%AF%B9%E9%BD%90%E5%88%B0%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E4%B8%8B%E6%96%B9%EF%BC%9F.png)
有时在 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>