如何将光标对齐到特定字符下方?

如何将光标对齐到特定字符下方?

有时在 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>

相关内容