【问题标题】:How can I get the terminal key code in vim如何在 vim 中获取终端密钥代码
【发布时间】:2020-08-29 06:48:12
【问题描述】:

我有一个现有的.vimrc,它是在 macintosh 计算机上创建的,包含如下映射:

"------------------------------------------------------------
" keyboard shortcuts
"------------------------------------------------------------

nmap <S-Tab> :wincmd W<CR>
nmap <S-q> :bp\|bd #<CR>
nmap « :bp\|bd #<CR>
nmap ¢ :sp<CR>
nmap ¶ :vsp\|wincmd w<CR>
nmap :Q :qa<CR>
nmap :W :wqa<CR>
nmap ≠ :q<CR>
nmap ESC[1;9B 15j
nmap ESC[1;9A 15k
nmap ^? :w<CR>
nmap ø :edit
nmap ESC[1;5B 15j
nmap ESC[1;5A 15k
vmap ESC[1;5B 15j
vmap ESC[1;5A 15k
nmap ^\ :edit
nmap ^] :wincmd w<CR>
nmap <F9> :w<CR>:Make<CR><CR>
imap <F9> <ESC>:w<CR>:Make<CR>
nmap <C-n> :cnext<CR>
nmap <C-p> :cprev<CR>
nmap <F5> :Grep
nmap @ g~w w
nmap <F10> :ConqueGdb
nmap ^A :sav %:h/filename
nmap ESC[1;2D :NERDTreeToggle<CR>
nmap ESC[1;2B :sp\|wincmd w<CR>
nmap ESC[1;2C :vsp\|wincmd w<CR>
nmap ESC[1;5D :q<CR>
nmap ESC[1;5F :BuffergatorToggle<CR>

nmap ESC[1;6D w
nmap ESC[1;6B b

现在我已将此.vimrc 转移到一台新的 linux 计算机(基于 debian),但一半的快捷方式不再起作用。我猜那是因为 mac 对某些按键的解释与 linux 计算机不同(两台计算机都有 vim v8.1)。

在创建快捷键的时候,我记得vim中有一个功能可以在你按下按键时打印出按键代码,但那是大约10年前的事情了,我不记得了,我找不到通过谷歌。
准确地说,就像“在vim中按XYZ,然后按eg CTRL+S,那么 vim 会打印出对应的键码用于映射”。

我现在该怎么做才能使这些快捷方式也能在 linux 上运行?

【问题讨论】:

    标签: linux macos vim key keyboard-shortcuts


    【解决方案1】:

    你正在寻找:help i_CTRL-V:

    对于特殊键,插入终端代码。

    例如,在我的 Gnome 终端中,按 &lt;C-V&gt;&lt;Right&gt; 会得到 ^[OC,而 &lt;C-V&gt;&lt;F12&gt; 会得到 ^[[24~

    一般来说,您应该尽可能选择 Vim 的key-notation。如果您确实需要插入特定的转义码并且需要使用单个~/.vimrc 支持多个平台,您可以将映射定义包装在if has('mac')if $TERM ==# 'screen256-color' 等条件中。

    【讨论】:

    • 好吧,虽然这个 似乎 可以满足我的需要,但我遇到了几个快捷方式的问题,即 CTRL-3CTRL-0(可能还有更多 C 类快捷方式) .对于那些,上面的i &lt;C-V&gt; &lt;C-0&gt; 不会打印任何内容。 i &lt;C-V&gt; &lt;C-3&gt; 将打印 ^[。但是,这似乎只是箭头键(甚至没有按下),因此快捷方式会在随机情况下触发。当我只写nmap &lt;C-3&gt; :something时,它不会触发。
    • 取决于终端,并非所有的 Ctrl 组合都有效;通常只是 Ctrl + 字母。
    猜你喜欢
    • 2010-10-09
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2014-05-31
    相关资源
    最近更新 更多