【问题标题】:How to increment in vim under windows (where CTRL-A does not work...)如何在windows下增加vim(CTRL-A不起作用......)
【发布时间】:2008-09-15 21:00:30
【问题描述】:

虽然 CtrlX 在 windows 下的 vim 中可以正常工作,但 CtrlA 会选择所有 (duh)。

有没有办法在windows下通过按键来增加一个数字?

【问题讨论】:

  • 如果你不想要全选行为,我想你可以通过:nunmap <C-A> 回到默认的增量行为。

标签: vim


【解决方案1】:

您可以通过打开 vim 目录中的 'mswin.vim' 文件并找到如下所示的部分来使 CtrlA 在 Windows 中递增:

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

将所有这些行注释如下:

" CTRL-A is Select all
"noremap <C-A> gggH<C-O>G
"inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
"cnoremap <C-A> <C-C>gggH<C-O>G
"onoremap <C-A> <C-C>gggH<C-O>G
"snoremap <C-A> <C-C>gggH<C-O>G
"xnoremap <C-A> <C-C>ggVG

CtrlA 按键将递增。

当您的键盘没有实数键盘时,这是一个不错的选择。

【讨论】:

  • 作为主要的 Linux 用户,这有助于我使用相同的控件
【解决方案2】:

试试 Ctrl-NumPad + ?

(from here)

【讨论】:

  • 谢谢。只是为了完成答案,还需要: :noremap
  • 链接已失效。只是一个友好的提醒,我知道这个答案已经快 3 岁了:)
  • 当你没有小键盘的时候?
  • 你可以在你的vimrc中:noremap &lt;C-A&gt; &lt;C-A&gt;
【解决方案3】:

我意识到这是一个老问题,但我今天根据以下问题遇到了另一个选项。让 gvim 像它在 linux 上一样运行将允许 CTRL-A 像你期望的那样工作:

how to make gvim on windows behave exacly like linux console vim?

_vimrc 中有一段包含以下项目。这会导致许多控制字符的行为与在 Windows 上一样。

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

我注释掉了(使用")mswin 行和set nocompatible 行。从那里,我添加了set compatible。这会导致 gvim 像在 linux 上一样运行。因此,我的看起来像:

set compatible
source $VIMRUNTIME/vimrc_example.vim
"set nocompatible
"source $VIMRUNTIME/mswin.vim
"behave mswin

我今天刚学会这个技巧,所以如果我的信息不完全正确,请告诉我。

【讨论】:

    【解决方案4】:

    我修改了 TMealy 的解决方案,使得 CtrlA 仍然选择所有(我觉得这很有用),而 CtrlI kbd> 增量(也很有用)。

    noremap <C-I> <C-A>
    
    " CTRL-A is Select all
    noremap <C-A> gggH<C-O>G
    inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
    cnoremap <C-A> <C-C>gggH<C-O>G
    onoremap <C-A> <C-C>gggH<C-O>G
    snoremap <C-A> <C-C>gggH<C-O>G
    xnoremap <C-A> <C-C>ggVG
    

    【讨论】:

    • 但 Ctrl-I 用于跳转到较新的光标位置。
    【解决方案5】:

    在 GNU/Linux 下使用带有mswin.vim 的 Vim 时会出现类似的问题。 在调用 mswin.vim 之前将 Alt+X 重新映射到 Ctrl+A 解决了我的问题。

    execute "set <A-x>=\ex"
    noremap <A-x> <C-A>
    source $VIMRUNTIME/mswin.vim
    behave mswin
    

    现在,Alt+XCtrl+X 在 Vim 中分别增加和减少数字。 p>

    映射到 Alt 组合键在 Vim 中通常不明显;阅读更多关于here的信息。

    【讨论】:

      【解决方案6】:

      我使用的是cygwin终端+屏幕,所以被终端多路复用器捕获。我使用了这个映射:

      :noremap

      【讨论】:

        【解决方案7】:

        似乎 CtrlA 在启动时被映射到某个地方。 如前所述,使用:

        取消映射

        我会使用 unmap,而不是 nunmap。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-01
          • 1970-01-01
          相关资源
          最近更新 更多