vimでオートコンプリートに使用されるキーバインドを変更するにはどうすればよいですか?

autocomplete key-bindings vim
vimでオートコンプリートに使用されるキーバインドを変更するにはどうすればよいですか?

私はCtrlキーを押しながらN ‘ の大ファンではない、私は Ctrlキーを押しながらSpace`を使用できるようにしたいと思います。 どのように私はそれを行うことができますか?

  36  6


ベストアンサー

if has("gui_running")
    " C-Space seems to work under gVim on both Linux and win32
    inoremap
else " no gui
  if has("unix")
    inoremap
  else
  " I have no idea of the name of Ctrl-Space elsewhere
  endif
endif

33


Ctrl + Spaceマッピングも気に入っています。

" Remap code completion to Ctrl+Space {{{2
inoremap

あなたの場合、あなたがしたい:

inoremap

18


たとえば、Ctrl-Eにマップする場合は、次のようになります。

inoremap

[.kbd] #Ctrl#-[。kbd]#Space#の問題は、ほとんどの端末が単にスペースとして表示することです。 X内でターミナルプログラムを使用していると仮定します。別のものを使用している場合は、関連する置換を自分で指定する必要があります。

Bashのreadlineには通常、[次のキーをリテラルとして扱う]にマッピングされた[.kbd] Ctrl#-[。kbd]#V#があります。 [.kbd] #Ctrl#-[。kbd]#V#を押してからbashコマンドラインでHomeを押すと、行の先頭に移動するのではなく、コマンドラインに `^ [[H`またはそのようなものが挿入されます。 押してみて
[.kbd]#Ctrl
V then CtrlSpace. Probably you’ll
ただスペースを見てください。

その場合、[。kbd] #Ctrl#-[。kbd]#を押したときにXに異なる何かを出力させるために、xmodmapをだますか、独自の/ usr / share / X11 / xkb / *ファイルを作成する必要があります。スペース#。 Firefoxのようなプログラムは気にしません。どのベースキーが押されているかを検出し、どの修飾キーが押されているかを自分で判断します。 ただし、ほとんどの端末ベースのプログラムは、XにSpaceと[.kbd] #Ctrl#-[。kbd]#Space#を処理するように指示しない限り、[。kbd] #Ctrl#-[。kbd]#Space#をSpaceとして表示します。異なって。

xmodmapだけでこの変更を行うことはできません。おそらく、低レベルの/ usr / share / X11 / xkb / *ハッキングを行う必要があります。 これは複雑で、最初にXを使用しているかどうかさえわかりませんので、そのままにしておきます。

urxvtなどの一部の端末では、独自のキーバインドを指定できます。 Firefoxのように、Xを設定するために特別なことをしなくても、彼らはそれがSpaceであるときとControl-Spaceであるときを区別できます。 したがって、押すとurxvtに「\ 033I_TYPED_CONTROL_SPACE_DAMMIT」を出力するように指示できます。
CtrlSpace. And then you could tell vim to map that to
“.

編集:Ctrl-Spaceを使用して `\ 0`を出力したことを忘れていました(キーボードのどこかに再マップしました)。 その場合、上記で説明したすべての複雑さは不要です。 私が言ったことは、[。kbd]#Ctrl#-colonのような、よりエキゾチックなマッピングを使用したい人に適用されます
AltSpace.

8


タイトルとURLをコピーしました