说不上喜欢,也就是习惯了
短距离移动倾向于C-f,C-b, 中短距离倾向于h,j,k,l,w,e,b,大范围就avy+其它,我把insert state下的按键全替换成emacs原来的按键。
用机械键盘,双手掌压+拇指控制修饰键,Emacs原生键位很好用,比evil舒服。
我觉得原生的痛点不在移动,在于选择。C-f, M-f都好按,C-M-f 也还行,但是 C-M-S-f 就。。。。
原生肯定是C-SPC
了,按shift是为了兼容别的编辑器的方法,类似cua。
觉得C-M-S-f还行,左手手掌边缘按住Ctrl,大拇指按住Alt,食指按住f,右手小拇指按住Shift,按起来很自然
但是C-M-S-n就不舒服了,还是老老实实按C-SPC
比如这种,C-M-u C-M-S-f 或 C-M-n C-M-S-b 就感觉很难按,按多了就手疼。
标记sexp 用 C-M-space 就会简单很多
觉得还是模式编辑方便。除了移动一个字符,都是模式编辑方便。
难道就我用上下左右键吗
很久没用ctrl+b,ctrl+f了,用法是shift+f,shift+b和方向键,要移动很多字符,shift也不想按的时候,我的用法也有模式编辑,caps lock大写字母锁定,然后就可以FBPN移动光标了(不过很少那么用因为方向键也不错), 我的emacs按键使用方式-用shift,看来比较独特,有人也这样用过吗?
强烈推荐交换C-b <-> C-d
, M-b <-> M-d
键位偏好,本站有过投票
经常用的是evil的ctl+f和ctl+b来翻页。。。
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
我的键位习惯是 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 二连猛如虎
M-f M-b移动比h l爽