有没有喜欢用原生ctl+b, ctl+f移动的朋友

emacs原生键移动起来非常不舒服,要是没有evil,根本不考虑emacs,还不如用vim。移动的时候一个手指按hjkl肯定比两个手指按c-a c-f之类的舒服,不累。

我vim的 insert 用的是常用 emacs 绑定,哈哈

inoremap <C-P> <Up>
inoremap <C-N> <Down>

set ttimeout
if &ttimeoutlen == -1
  set ttimeoutlen=50
endif

" copy from tpope/vim-rsi
inoremap        <C-A> <C-O>^
inoremap   <C-X><C-A> <C-A>

inoremap <expr> <C-B> getline('.')=~'^\s*$'&&col('.')>strlen(getline('.'))?"0\<Lt>C-D>\<Lt>Esc>kJs":"\<Lt>Left>"

inoremap <expr> <C-D> col('.')>strlen(getline('.'))?"\<Lt>C-D>":"\<Lt>Del>"
" cnoremap <expr> <C-D> getcmdpos()>strlen(getcmdline())?"\<Lt>C-D>":"\<Lt>Del>"

" inoremap <expr> <C-E> col('.')>strlen(getline('.'))<bar><bar>pumvisible()?"\<Lt>C-E>":"\<Lt>End>"
inoremap <C-E> <END>

inoremap <expr> <C-F> col('.')>strlen(getline('.'))?"\<Lt>C-F>":"\<Lt>Right>"


" enter select complete candicate
" inoremap <expr> <CR> pumvisible() ? "\<C-Y>" : "\<CR>"

inoremap <C-X><C-S> <Esc>:w<CR>
cnoremap <C-X><C-S> <Esc>:w<CR>
nnoremap <C-X><C-S> <Esc>:w<CR>

" kill line
inoremap <C-k> <C-r>=<SID>kill_line()<CR>

function! s:kill_line()
  let [text_before_cursor, text_after_cursor] = s:split_line_text_at_cursor()
  if len(text_after_cursor) == 0
    normal! J
  else
    call setline(line('.'), text_before_cursor)
  endif
  return ''
endfunction

function! s:split_line_text_at_cursor()
  let line_text = getline(line('.'))
  let text_after_cursor  = line_text[col('.')-1 :]
  let text_before_cursor = (col('.') > 1) ? line_text[: col('.')-2] : ''
  return [text_before_cursor, text_after_cursor]
endfunction

if has('nvim')
    inoremap <m-f> <Esc>lea
    inoremap <m-b> <Esc>bi
    inoremap <m-d> <Esc>ldwi
    inoremap <m-x> <Esc>:
else
    " map alt in vim is different
    execute "set <m-f>=\ef"
    inoremap <m-f> <Esc>lea
    execute "set <m-b>=\eb"
    inoremap <m-b> <Esc>bi
    execute "set <m-d>=\ed"
    inoremap <m-d> <Esc>ldwi
    execute "set <m-x>=\ex"
    inoremap <m-x> <Esc>:
endif
2 个赞

我的键位习惯是 Vim 和 Emacs 的融合体,vi 在插入模式下除了方向键好像没有可以移动的,Esc 或者 kj 退出插入模式都很慢,所以若有小范围移动我更倾向于 C-f C-b C-a C-e 快捷键,大范围移动还是 Esc kj 退出后,hjkl 移动。这样的后果是一些 IDE,网页编辑区 都只提供单独的 Emacs 或者单独 vim 键位,让我很不习惯。

我一直在用C-f/b M-f/b,包括在终端下也适用,已经习惯了。难道还有其他的方式?

df 二连猛如虎

1 个赞

M-f M-b移动比h l爽