gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

Vim、Emacs配置和使用
回复
riptide2012
帖子: 222
注册时间: 2011-12-14 10:21

gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#1

帖子 riptide2012 » 2012-03-18 15:12

terminal下有些快捷键挺方便的


C-a 到头
C-e 到尾
C-k 删到头
C-u 删到尾
C-w 像前删一个单词

gvim有现成的vimrc配置或者脚本在插入模式下实现这套东西么
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#2

帖子 自由建客 » 2012-03-18 15:20

用 vim 竟要模拟 emacs!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#3

帖子 lilydjwg » 2012-03-18 16:04

有,在我的配置里,plugin/bash.vim,插入模式和命令模式有效,终端 vim 里也有效。不过有些键位因为要避免冲突而和 bash 的不一致。如有问题欢迎指出和提交补丁。另外,如在终端使用,请同时使用 plugin/escalt.vim 插件处理 Alt 键的问题。

另外,你把 C-u 和 C-k 的功能弄反了。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#4

帖子 aerofox » 2012-03-19 5:47

我一直都是在 bash 中 set -o vi,使用 vi 模式的命令行编辑方式的。
虽然在 vim 中配置那些快捷键也可以,但是为什么不干脆用 emacs 呢?
niejieqiang
帖子: 151
注册时间: 2009-05-29 22:05

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#5

帖子 niejieqiang » 2012-04-05 13:34

:em05 终于找到同志了,内牛满面呀
imap <m-d> <esc>diwa
imap <m-BS> <c-w>

cmap <m-d> <s-right><c-w>
cmap <m-BS> <c-w>

nmap <m-d> <esc>dw
nmap <m-BS> db

像emacs那样的C-k功能,在行首删除整行,否则只删除到行未.

代码: 全选

"<==================================================
" del whole line when at the line head like emacs,
" otherwise only cut to the end.
"<==================================================
if has("perl")
perl << EOF
use strict;
sub check_pos{
 	my $curwin = $main::curwin;
    my $curbuf = $main::curbuf;
	my ($x,$y)=$curwin->Cursor;
	if ($y<1){
		$curbuf->Delete($x);
		}
	else{
		my $line=substr($curbuf->Get($x),0,$y);
		$curbuf->Set($x,$line);
	}
}
EOF
function! Del_whole_line()
	perl check_pos(); 
endfunction
silent imap <c-k> <ESC>:call Del_whole_line()<cr>
endif
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#6

帖子 lilydjwg » 2012-04-05 13:59

niejieqiang 写了::em05 终于找到同志了,内牛满面呀
imap <m-d> <esc>diwa
imap <m-BS> <c-w>

cmap <m-d> <s-right><c-w>
cmap <m-BS> <c-w>

nmap <m-d> <esc>dw
nmap <m-BS> db

像emacs那样的C-k功能,在行首删除整行,否则只删除到行未.
我都是尽量避免模式切换的。
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#7

帖子 Fermat618 » 2012-04-05 21:10

riptide2012 写了:terminal 下有些快捷键挺方便的

C-a 到头
C-e 到尾
C-k 删到头
C-u 删到尾
C-w 像前删一个单词
gvim 有现成的 vimrc 配置或者脚本在插入模式下实现这套东西么
后面两个完全原生的,你现在就可以试下。

C-a -> <Esc>I 或 <Esc>gI
C-e -> <Esc>A
C-k -> <Esc>lC 如果你只需要删除不需要接着插入的话, <Esc>lD
这三个里面我会用到只有 C-e, 右手的中指按 Ctrl, 左手中指按 e, <Esc>A 对左手小拇指压力太大了,相比而方,两个中指有力得多了。

还有 C-f 和 C-b 可以映射一下,其它的没什么必要了。

vim 的插入状态下要完全模拟 emacs 快捷键, 既无必要,又有副作用。无必要是因为 vim 进行复杂编辑比 emacs 厉害多了,副作用是 vim 的插件状态下本来就有些很有用的快捷键,如 <C-k>.

如果你喜欢 A-t 交换两个单词的功能,可以用我的 transpose word 插件 http://forum.ubuntu.org.cn/viewtopic.ph ... &p=2659736 这个功能 vim 没有原生对应。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#8

帖子 lilydjwg » 2012-04-05 22:07

对了,内建的 Ctrl-k 输入特殊字符时是很有用的。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#9

帖子 自由建客 » 2012-04-05 22:15

lilydjwg 写了:对了,内建的 Ctrl-k 输入特殊字符时是很有用的。
我用输入法
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: gvim插入模式的时候相仿terminal的快捷键 有这种现成的配置么?

#10

帖子 fanhe » 2012-04-06 12:40

自己在插入模式 imap 一下就好了
现在用终端的时间太多了,也习惯了 emacs 那套,vim 的插入模式也有用这套绑定
回复