如何更改 vim 使用冒号命令时的组合键

Vim、Emacs配置和使用
回复
头像
自由建客
论坛版主
帖子: 13443
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

如何更改 vim 使用冒号命令时的组合键

#1

帖子 自由建客 » 2010-11-13 0:45

bash 默认 \C-p \C-n 分别为 previous-history next-history ,我习惯将其改为 history-search-backward history-search-forward 。
现 vim 使用冒号命令时,\C-p \C-n 行为同 bash 默认的 previous-history next-history ,如何更改其为 history-search-* ?
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 如何更改 vim 使用冒号命令时的组合键

#2

帖子 lilydjwg » 2010-11-13 11:50

bash 和 vim 有什么关系? :em20 :em20
onelynx
帖子: 817
注册时间: 2008-11-13 16:03
送出感谢: 0
接收感谢: 0

Re: 如何更改 vim 使用冒号命令时的组合键

#3

帖子 onelynx » 2010-11-13 12:24

自由建客 写了:bash 默认 \C-p \C-n 分别为 previous-history next-history ,我习惯将其改为 history-search-backward history-search-forward 。
现 vim 使用冒号命令时,\C-p \C-n 行为同 bash 默认的 previous-history next-history ,如何更改其为 history-search-* ?
不好意思,没看明白你的意思
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 如何更改 vim 使用冒号命令时的组合键

#4

帖子 lilydjwg » 2010-11-13 13:30

fzq5012 写了:
自由建客 写了:bash 默认 \C-p \C-n 分别为 previous-history next-history ,我习惯将其改为 history-search-backward history-search-forward 。
现 vim 使用冒号命令时,\C-p \C-n 行为同 bash 默认的 previous-history next-history ,如何更改其为 history-search-* ?
不好意思,没看明白你的意思
我终于看明白了他的意思。但 Vim 里没 history-search-* 这种功能啊。最多就是上下方向键那个了。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: 如何更改 vim 使用冒号命令时的组合键

#5

帖子 xhy » 2010-11-13 14:54

你输入命令的前几个字符,然后按向上的箭头,就能搜索了
目前负债150多万
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: 如何更改 vim 使用冒号命令时的组合键

#6

帖子 xhy » 2010-11-13 14:56

或者用q:,会出现一个历史命令的列表,然后用/搜索,定位好后直接回车
目前负债150多万
头像
自由建客
论坛版主
帖子: 13443
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: 如何更改 vim 使用冒号命令时的组合键

#7

帖子 自由建客 » 2010-11-13 20:00

对,上下光标键的功能就是 bash 的那个 history-search 功能,但 Ctrl + p Ctrl +n 不是,想把这两组更顺手的改成那功能。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: 如何更改 vim 使用冒号命令时的组合键

#8

帖子 xhy » 2010-11-13 20:12

cnoremap <C-p> <up>
cnoremap <C-n> <down>
目前负债150多万
头像
自由建客
论坛版主
帖子: 13443
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: 如何更改 vim 使用冒号命令时的组合键

#9

帖子 自由建客 » 2010-11-15 22:04

多谢楼上!
不过,还是不明白 vim 的键绑定,为什么不能用类似 map <按键> <命令> 的方式,而是 map <新按键> <老按键>,这不就是复制按键吗,要是老按键的功能变了怎么办?
inputrc 的 "\C-p": history-search-backward 就显得好多了,而且易读易维护。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: 如何更改 vim 使用冒号命令时的组合键

#10

帖子 xhy » 2010-11-15 22:11

所以才有map和noremap之分
目前负债150多万
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: 如何更改 vim 使用冒号命令时的组合键

#11

帖子 xhy » 2010-11-15 22:14

map主要用于normal和insert,
这个时候command实际上也是通过按键序列实现的,
所以只要能map keys keys,就能map keys commands
目前负债150多万
回复

回到 “Vim和Emacs”