【深度求助】vim能不能把一些快捷键关闭
-
- 帖子: 41
- 注册时间: 2007-10-08 1:05
【深度求助】vim能不能把一些快捷键关闭
输入词组的最后一个大写字母后总是习惯性的按j,k键,这个时候CapsLock还开着,汗,这下就是按成J,K了,光标直接乱跳。。。
能不能把J,K快捷键关闭或禁掉?
大家平时写代码的时候遇到这问题都怎么办的?都来说说~~
想到一个办法,每次按Esc键以后都强制关闭CapLock键,只是不知道怎么搞,大虾求助啊
能不能把J,K快捷键关闭或禁掉?
大家平时写代码的时候遇到这问题都怎么办的?都来说说~~
想到一个办法,每次按Esc键以后都强制关闭CapLock键,只是不知道怎么搞,大虾求助啊
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: 【深度求助】vim能不能把一些快捷键关闭
代码: 全选
nnoremap J <Nop>
nnoremap K <Nop>
用惯 vim 的人一般不会用 capslock
不清楚 vim 有命令关闭 capslock的
我自己的解决方案是自己写个函数,把光标前的单词全部切换大小写
-
- 帖子: 41
- 注册时间: 2007-10-08 1:05
Re: 【深度求助】vim能不能把一些快捷键关闭
研究了下,ubutun的键盘布局里面有<按shift取消大写锁定>选项,如何把这个shift改成esc啊,有知道的朋友吗
-
- 帖子: 41
- 注册时间: 2007-10-08 1:05
Re: 【深度求助】vim能不能把一些快捷键关闭
谢谢~饭盒兄~fanhe 写了:这就是关了快捷键代码: 全选
nnoremap J <Nop> nnoremap K <Nop>
用惯 vim 的人一般不会用 capslock
不清楚 vim 有命令关闭 capslock的
我自己的解决方案是自己写个函数,把光标前的单词全部切换大小写
难道你是先写小写字母再把这些小写字母自动转成大写的?有道理~~
能贴一下函数不?
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: 【深度求助】vim能不能把一些快捷键关闭
[vim]"写 C 时麻烦的宏定义大写问题,解决!
inoremap <silent> <expr> <C-y>
\pumvisible()?"\<C-y>":"\<C-r>=<SID>ToggleCase()\<CR>"
function! s:ToggleCase() "{{{
let sLine = getline('.')
let nEndIdx = col('.') - 2
let sWord = matchstr(sLine[: nEndIdx], '\zs\k*\ze$')
if sWord ==# ''
return ''
endif
if sWord =~# '[a-z]'
call setline(line('.'), substitute(sLine[: nEndIdx], '\zs\k*\ze$',
\ toupper(sWord), '') . sLine[nEndIdx+1 :])
else
call setline(line('.'), substitute(sLine[: nEndIdx], '\zs\k*\ze$',
\ tolower(sWord), '') . sLine[nEndIdx+1 :])
endif
return ''
endf
"}}}
[/vim]
我用 <C-y> 当快捷键,你可以换成其他
也可以用普通模式的 gUb 和 gub,反正这段代码我用很久了,写 c 时那些宏,大写到我斯巴达
inoremap <silent> <expr> <C-y>
\pumvisible()?"\<C-y>":"\<C-r>=<SID>ToggleCase()\<CR>"
function! s:ToggleCase() "{{{
let sLine = getline('.')
let nEndIdx = col('.') - 2
let sWord = matchstr(sLine[: nEndIdx], '\zs\k*\ze$')
if sWord ==# ''
return ''
endif
if sWord =~# '[a-z]'
call setline(line('.'), substitute(sLine[: nEndIdx], '\zs\k*\ze$',
\ toupper(sWord), '') . sLine[nEndIdx+1 :])
else
call setline(line('.'), substitute(sLine[: nEndIdx], '\zs\k*\ze$',
\ tolower(sWord), '') . sLine[nEndIdx+1 :])
endif
return ''
endf
"}}}
[/vim]
我用 <C-y> 当快捷键,你可以换成其他
也可以用普通模式的 gUb 和 gub,反正这段代码我用很久了,写 c 时那些宏,大写到我斯巴达
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 【深度求助】vim能不能把一些快捷键关闭
从来不用 Caps Lock 的路过~
-
- 帖子: 41
- 注册时间: 2007-10-08 1:05
Re: 【深度求助】vim能不能把一些快捷键关闭
多谢饭盒兄~~~fanhe 写了:[vim]"写 C 时麻烦的宏定义大写问题,解决!
inoremap <silent> <expr> <C-y>
\pumvisible()?"\<C-y>":"\<C-r>=<SID>ToggleCase()\<CR>"
function! s:ToggleCase() "{{{
let sLine = getline('.')
let nEndIdx = col('.') - 2
let sWord = matchstr(sLine[: nEndIdx], '\zs\k*\ze$')
if sWord ==# ''
return ''
endif
if sWord =~# '[a-z]'
call setline(line('.'), substitute(sLine[: nEndIdx], '\zs\k*\ze$',
\ toupper(sWord), '') . sLine[nEndIdx+1 :])
else
call setline(line('.'), substitute(sLine[: nEndIdx], '\zs\k*\ze$',
\ tolower(sWord), '') . sLine[nEndIdx+1 :])
endif
return ''
endf
"}}}
[/vim]
我用 <C-y> 当快捷键,你可以换成其他
也可以用普通模式的 gUb 和 gub,反正这段代码我用很久了,写 c 时那些宏,大写到我斯巴达
- Fermat618
- 帖子: 728
- 注册时间: 2008-12-28 16:01
Re: 【深度求助】vim能不能把一些快捷键关闭
现在心疼小指,开始用了,不过用完立即就关掉。lilydjwg 写了:从来不用 Caps Lock 的路过~
如果能找到关掉Capslock的命令,用Vim的autocmd来自动调用一下也不错。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 【深度求助】vim能不能把一些快捷键关闭
大量大写时我都是先写成小写再转的。更多的情况是可以补全。Fermat618 写了:现在心疼小指,开始用了,不过用完立即就关掉。lilydjwg 写了:从来不用 Caps Lock 的路过~
如果能找到关掉Capslock的命令,用Vim的autocmd来自动调用一下也不错。
要关掉 Caps Lock 很简单,用 xdotools 或者 xmacro 都可以,自己用 Xtest 写个程序也行。
- Fermat618
- 帖子: 728
- 注册时间: 2008-12-28 16:01
Re: 【深度求助】vim能不能把一些快捷键关闭
啊,你在就是好啊,我查了半天的google也没查到。其间还被重置了很多次。lilydjwg 写了:大量大写时我都是先写成小写再转的。更多的情况是可以补全。Fermat618 写了:现在心疼小指,开始用了,不过用完立即就关掉。lilydjwg 写了:从来不用 Caps Lock 的路过~
如果能找到关掉Capslock的命令,用Vim的autocmd来自动调用一下也不错。
要关掉 Caps Lock 很简单,用 xdotools 或者 xmacro 都可以,自己用 Xtest 写个程序也行。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
爱因斯坦会拉小提琴
爱因斯坦会骑自行车