Vim:映射到开关window和填满屏幕
Vim: mapping to switch window and fill screen
我的 .vimrc 中有以下几行,这让我可以切换 windows 和 ctrl+hjkl:
nnoremap <C-h> <C-W>h
nnoremap <C-j> <C-W>j
nnoremap <C-k> <C-W>k
nnoremap <C-l> <C-W>l
这些对我的台式电脑来说没问题,但在我的上网本上,我想让活动 window 完全填满小屏幕。这意味着键入 ctrl+w _ 和 ctrl+ w | 每次 window 更改后。合乎逻辑的步骤是将这些击键添加到映射中,从而产生:
nnoremap <C-h> <C-W>h<C-W>_<C-W>|
nnoremap <C-j> <C-W>j<C-W>_<C-W>|
nnoremap <C-k> <C-W>k<C-W>_<C-W>|
nnoremap <C-l> <C-W>l<C-W>_<C-W>|
但是,在映射中,尽管我只需键入所需的键就可以正常工作,但始终会失败;并且(正如我设置的 'showcmd')它似乎留下了尾随 <C-W>
.
我也试过使用 :wincmd:
nnoremap <C-h> :wincmd h<cr>:wincmd _<cr>:wincmd |<cr>
nnoremap <C-j> :wincmd j<cr>:wincmd _<cr>:wincmd |<cr>
nnoremap <C-k> :wincmd k<cr>:wincmd _<cr>:wincmd |<cr>
nnoremap <C-l> :wincmd l<cr>:wincmd _<cr>:wincmd |<cr>
但是每当我的 vimrc 被获取时都会抱怨拖尾 <cr>
,所以我不会在没有更多研究的情况下进一步追求它。
有什么想法吗?
尝试使用 <Bar>
而不是 |
。即:
nnoremap <C-h> <C-W>h<C-W>_<C-W><Bar>
nnoremap <C-j> <C-W>j<C-W>_<C-W><Bar>
nnoremap <C-k> <C-W>k<C-W>_<C-W><Bar>
nnoremap <C-l> <C-W>l<C-W>_<C-W><Bar>
|
用于在一行上执行乘法命令,按字面意义使用时需要使用反斜杠进行转义:
nnoremap <C-h> <C-W>h<C-W>_<C-W>\|
nnoremap <C-j> <C-W>j<C-W>_<C-W>\|
nnoremap <C-k> <C-W>k<C-W>_<C-W>\|
nnoremap <C-l> <C-W>l<C-W>_<C-W>\|
另一方面,|
很有用:
nnoremap xxx :if 1 == 2 | echom "hello" | endif
我的 .vimrc 中有以下几行,这让我可以切换 windows 和 ctrl+hjkl:
nnoremap <C-h> <C-W>h
nnoremap <C-j> <C-W>j
nnoremap <C-k> <C-W>k
nnoremap <C-l> <C-W>l
这些对我的台式电脑来说没问题,但在我的上网本上,我想让活动 window 完全填满小屏幕。这意味着键入 ctrl+w _ 和 ctrl+ w | 每次 window 更改后。合乎逻辑的步骤是将这些击键添加到映射中,从而产生:
nnoremap <C-h> <C-W>h<C-W>_<C-W>|
nnoremap <C-j> <C-W>j<C-W>_<C-W>|
nnoremap <C-k> <C-W>k<C-W>_<C-W>|
nnoremap <C-l> <C-W>l<C-W>_<C-W>|
但是,在映射中,尽管我只需键入所需的键就可以正常工作,但始终会失败;并且(正如我设置的 'showcmd')它似乎留下了尾随 <C-W>
.
我也试过使用 :wincmd:
nnoremap <C-h> :wincmd h<cr>:wincmd _<cr>:wincmd |<cr>
nnoremap <C-j> :wincmd j<cr>:wincmd _<cr>:wincmd |<cr>
nnoremap <C-k> :wincmd k<cr>:wincmd _<cr>:wincmd |<cr>
nnoremap <C-l> :wincmd l<cr>:wincmd _<cr>:wincmd |<cr>
但是每当我的 vimrc 被获取时都会抱怨拖尾 <cr>
,所以我不会在没有更多研究的情况下进一步追求它。
有什么想法吗?
尝试使用 <Bar>
而不是 |
。即:
nnoremap <C-h> <C-W>h<C-W>_<C-W><Bar>
nnoremap <C-j> <C-W>j<C-W>_<C-W><Bar>
nnoremap <C-k> <C-W>k<C-W>_<C-W><Bar>
nnoremap <C-l> <C-W>l<C-W>_<C-W><Bar>
|
用于在一行上执行乘法命令,按字面意义使用时需要使用反斜杠进行转义:
nnoremap <C-h> <C-W>h<C-W>_<C-W>\|
nnoremap <C-j> <C-W>j<C-W>_<C-W>\|
nnoremap <C-k> <C-W>k<C-W>_<C-W>\|
nnoremap <C-l> <C-W>l<C-W>_<C-W>\|
另一方面,|
很有用:
nnoremap xxx :if 1 == 2 | echom "hello" | endif