我刚刚开始学习Vim。我在gnome-terminal中使用Vim(在Ubuntu 14.04上)。我想在我的vimrc文件中将kj键映射到Esc。我在我的vimrc文件(〜/ .vimrc)中添加了以下两行:
:echo $COLORTERM
问题1: 我采购了我的vimrc文件(甚至重新启动了终端),但是当我在插入模式下快速输入kj时,它只是键入了这两个字母kj并且没有进入正常模式。难道我做错了什么?将Esc键映射到其他内容的正确方法是什么?
问题2: 我该如何编辑我的vimrc以将大写字母键映射到Esc?
在Vim,
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
显示&#39; gnome-terminal&#39;
供参考,这是我完整的vimrc文件(没有评论):
var fruitsSorted = _.sortBy(fruits.find(selector).fetch(), (fruit) => {
if(_.contains(user.favorites, fruit.id)){
return 0;
}
return 1;
});
答案 0 :(得分:3)
粘贴模式处于活动状态时,插入模式键盘图将无效,默认情况下您将其激活:
set paste
您可能最好删除该行,因此粘贴模式不活动,并添加一种简单的方法可以在需要时将其打开。我用这个:
set pastetoggle=,p
粘贴模式默认为关闭,我可以使用,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'
答案 1 :(得分:1)
On 2)
不完全回答这个问题,因为这会将CapsLock映射到所有应用程序,而不仅仅是Vim。
xmodmap - <<EOD
! Set caps lock as escape, losing Caps Lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
EOD
我将该脚本作为 capswap 放在PATH的某个地方,并带有 chmod + x 。在您退出之前,不再有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,但实际上很久以前就删除了“交换”部分,就像在第一个清单中那样,并且只运行没有CapsLocking。您的偏好可能会导致不同的选择。第一个脚本提供相当于两个Esc键。