首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在插入模式下遍历文本?

如何在插入模式下遍历文本?
EN

Stack Overflow用户
提问于 2018-03-19 23:52:36
回答 10查看 0关注 0票数 0

在vim中使用插入模式的时候,除了通过使用箭头,是否还会有别的方法来遍历文本并将一些字符左右移动?

如果在插入模式下摁h、j、k和l,则会将实际字符打印在屏幕上,而不是在文本中移动。

我想要通过Ctrl+[(Esc)来遍历文本,但显然这是无效的。

EN

Stack Overflow用户

发布于 2018-03-20 08:10:58

可以通过inoremap来创建在插入模式下工作的映射。 注意命令开头的'i'(noremap对避免关键映射冲突很有用)。

当你想要使用“普通”模式在文本中导航的时候,Vim在这种情况下是具有特权的,所有值都可以从正常模式中获得。并且Vim已经提供了从正常模式到插入模式(例如,i,i,a,A,o,O)的简单方法。可以通过转义重新映射到一个更合适的键来进入正常模式。但是你需要一个不会与你的常规打字相冲突的输入键,以下为我使用的方法:

代码语言:javascript
复制
inoremap jj <Esc>

由于jj(这是2j一个接一个很快地输入)并没有出现在我的词汇表中, 其他的将重新映射到更合适的地方。

我做的另一个重要的改变是切换我的键盘上的CAPSLOCK和CONTROL键(使用主机的键盘配置)。(这对于Emacs用户来说很常见,缺点是你会发现自己在一个'未固定'的键盘上)

重新映射capslock之后,你可以轻松地使用以下插入模式映射:

请记住,某些键已经在插入模式中映射(默认情况下,backwards-kill-word为C-w(Control-w)),并且我更喜欢在.vimrc中使用C-h:

代码语言:javascript
复制
inoremap <C-h> <C-w>

所以我还将C-h映射为:

代码语言:javascript
复制
nnoremap <C-h> db

(d)elete (b)ackwards用同样的键值来完成同样的事情。但是要坚持用正常模式在文本中移动,而不是直接删除前面的单词。一旦你养成了改变模式的习惯(当然要使用重新映射),它将比重新映射插入模式更有效。

票数 0
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档