Vim映射/命令不起作用

时间:2013-01-23 11:22:15

标签: vim

我正在使用vim中的拆分窗口,但是我无法导航和调整分割窗口的大小。

我已将这些映射添加到我的.vimrc文本文件中:

nmap <silent> <A-Up> :wincmd k<CR>
nmap <silent> <A-Down> :wincmd j<CR>
nmap <silent> <A-Left> :wincmd h<CR>
nmap <silent> <A-Right> :wincmd l<CR>

但是,当按下<A-Left>时,它不会移动窗口。我也使用<C-w> +,但窗口不调整大小!我也尝试了<C-w> <,但它一次调整大小为1像素!有没有更快的方法来调整分割窗口的大小?

2 个答案:

答案 0 :(得分:1)

10 Ctrl-W +将窗口大小增加10行。要将所有Windows调整为相同大小,可以使用CTRL-W =并将窗口增加到其最大大小,使用Ctrl-W _。

要在不同的步骤中调整大小,您可以创建将以不同方式调整窗口大小的地图。例如,要将窗口大小增加1.5倍并将窗口大小减小0.67,您可以映射:

 nnoremap <silent> <Leader>+ :exe "resize " . (winheight(0) * 3/2)<CR>
 nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>

或者,您可以使用:resize命令更改窗口的高度,更改窗口宽度,使用:vertical修饰符。因此,要调整10行,请使用:

:res +10
:res -10

导航尝试

 nnoremap <C-h> <C-w>h
 nnoremap <C-j> <C-w>j
 nnoremap <C-k> <C-w>k
 nnoremap <C-l> <C-w>l

答案 1 :(得分:1)

<C-W>命令按单个 / 调整大小(在控制台Vim中甚至无法使用像素),但您应该预先添加他们之前的数字一次改变更大的数量。 (许多Vim命令采用了这样的[count],就像在帮助中调用它一样。)


对于<A-Up>映射,它们是在图形GVIM中工作,而不是在控制台中工作吗?!映射定义看起来很好(但您应该使用:nnoremap)。

由于内部处理键盘输入的方式,一些键组合,如 Ctrl +非字母无法映射, Ctrl + letter vs. < kbd> Ctrl + Shift +字母无法区分。 (除非您的终端为其发送不同的 termcap 代码,但大多数代码都没有。)在插入或命令行模式下,尝试键入组合键。如果没有任何反应/插入,则无法使用该组合键。这是一个众所周知的痛点,也是关于vim_dev和#vim IRC频道的各种讨论的主题。

有些人(最重要的是Paul LeoNerd Evans)希望解决这个问题(即使是支持Vim的终端中的控制台Vim),并提出了各种提案,cp。 http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

但截至今天,尚未有任何补丁或志愿者挺身而出,尽管许多人表示希望在未来的Vim 8主要版本中有这个。