2015-11-28 1 views
2

Я только начал изучать Vim. Я использую Vim в gnome-terminal (на Ubuntu 14.04). Я хочу сопоставить ключи kj с Esc в моем файле vimrc. Я добавил следующие строки в моем файле vimrc (~/.vimrc):Vim newbie: сопоставление ключа kj с <Esc> не работает в терминале gnome

inoremap kj <Esc> 
cnoremap kj <Esc> 

Вопрос 1: Я соерсед мой файл vimrc (даже перезапустить терминал), но когда я быстро ввести в КДж вставки mode, он просто набирает эти две буквы kj и не переходит в обычный режим. Я делаю что-то неправильно? Каков правильный способ привязать клавишу Esc к чему-то еще?

Вопрос 2: Как мне изменить vimrc на карту cap caps для Esc?

В Vim

:echo $COLORTERM 

показывает 'гном-терминал'

Для справки, вот мой полный vimrc файл (без комментариев):

set t_Co=256 
colorscheme wombat256mod 
syntax on 
set hlsearch 
set incsearch 
set number 
set autoindent 
set ts=4 
set ignorecase 
set title 
set scrolloff=5 

" Map <ESC> key to kj 
inoremap kj <Esc> 
cnoremap kj <Esc> 

set paste 
set cursorline 

ответ

3

Вставьте раскладку режим не будет работать, пока режим пасты активен, и вы его активным по умолчанию:

set paste 

Вы, вероятно, будете лучше извлекать эту линию так, режим пасты не является активным, и добавляя простой способ включить его, когда вы этого хотите. Я использую это: по умолчанию режим

set pastetoggle=,p 

Paste отключена, и я могу переключить его легко с помощью ,p

От :help 'paste:

When the 'paste' option is switched on (also when it was already on): 
     - mapping in Insert mode and Command-line mode is disabled 
     - abbreviations are disabled 
     - 'textwidth' is set to 0 
     - 'wrapmargin' is set to 0 
     - 'autoindent' is reset 
     - 'smartindent' is reset 
     - 'softtabstop' is set to 0 
     - 'revins' is reset 
     - 'ruler' is reset 
     - 'showmatch' is reset 
     - 'formatoptions' is used like it is empty 
These options keep their value, but their effect is disabled: 
     - 'lisp' 
     - 'indentexpr' 
     - 'cindent' 
+0

Уважаемый Дэн. Большое спасибо. Это сработало! Спасибо за подробное объяснение тоже. – aaivo

1

На 2)

Не совсем отвечает на вопрос, так как это отображает CapsLock для всех приложений, а не только для Vim.

xmodmap - <<EOD 
! Set caps lock as escape, losing Caps Lock 
remove Lock = Caps_Lock 
keysym Caps_Lock = Escape 
EOD 

Я ставлю этот сценарий в PATH где-то, как capswap с CHMOD + х. Пока вы не выйдете из системы, больше не CapsLock и Esc, где это должно быть для vi, рядом с левым мизинцем.

Чтобы разрешить Esc для фиксации крышки, (которые я нашел, даже как COBOL программист редко, если когда-либо, необходимо)

xmodmap - <<EOD 
! Set caps lock as escape, and escape as CapsLock 
remove Lock = Caps_Lock 
keysym Caps_Lock = Escape 
keysym Escape = Caps_Lock 
add Lock = Caps_Lock 
EOD 

Кстати, я привык называть его capswap, но Я фактически удалил часть «swapping» давно, как в первом листинге, и просто запускаю без CapsLocking. Ваши предпочтения могут привести к различным вариантам. Первый скрипт дает эквивалент двух ключей Esc.

+0

спасибо Брайану. Я хотел бы сопоставить свои ключи только для Vim, а не для всех. Но я буду помнить ваш совет и ждать ответа на мой вопрос. – aaivo

Смежные вопросы