ros*_*vid 2 vim keymapping macvim
我想根据上下文分配不同的命令.
我正在尝试做这样的事情:
if line is empty:
map x key to y command
else
map x key to z command
Run Code Online (Sandbox Code Playgroud)
通常通过<expr>映射来实现:
nnoremap <expr> ((empty(getline('.')))?('y'):('z'))
当你打算使用NerdCommenter时,你不得不使用"nore":
nmap <expr> empty(getline('.')) ? '' : '\cc'
Run Code Online (Sandbox Code Playgroud)
替换''为所需的代码,因为我不明白你的意思是"附加评论".
更好的方法是使用单个函数,其行为取决于行的内容.然后你不必费心去做不同的映射.例如:
function! LineOperation()
let curline=getline('.')
if curline =~ '^\s*$'
" empty line (except for whitespace): perform y command
else
" perform z command
endif
endfunction
Run Code Online (Sandbox Code Playgroud)
然后映射所需的键以调用此函数:
nnoremap <silent> x :call LineOperation()<CR>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |