Vim 导航笨重
我一直致力于钻研vim,以便更快地为ruby/python编写代码,而且我很难在文件中导航 主要是指在插入模式和导航模式之间切换。也许我还不完全习惯这个编辑器,但是不断地切换插入模式和退出插入模式感觉非常尴尬Vim 导航笨重,vim,Vim,我一直致力于钻研vim,以便更快地为ruby/python编写代码,而且我很难在文件中导航 主要是指在插入模式和导航模式之间切换。也许我还不完全习惯这个编辑器,但是不断地切换插入模式和退出插入模式感觉非常尴尬 这会随着时间而消失吗?有什么诀窍可以加快插入和退出插入模式的速度吗?阅读这篇优秀文章的“误解1”部分:许多人喜欢将jj或jk定义为在插入模式下键入以返回正常模式(而不是按escape)的内容,这会让你的手一直放在家里的那一排,加快速度。您可以将其放入.vimrc中进行映射(或者只选择其中一
这会随着时间而消失吗?有什么诀窍可以加快插入和退出插入模式的速度吗?阅读这篇优秀文章的“误解1”部分:许多人喜欢将
jj
或jk
定义为在插入模式下键入以返回正常模式(而不是按escape)的内容,这会让你的手一直放在家里的那一排,加快速度。您可以将其放入.vimrc中进行映射(或者只选择其中一个):
inoremap jj
inoremap jk
如果你真的需要键入这两个字符串中的任何一个(对我来说非常罕见),你只需键入第一个字母并暂停几秒钟,然后键入第二个
我还发现,在正常模式下真正理解所有移动键有助于理解vim中移动的力量,以及它如何让您更快地到达您想要去的地方(从而抵消和克服进入/离开插入模式的开销)
为此,我集中精力直观地显示相对于当前光标位置(屏幕中心)的各种移动命令。有了这个,帮助我记住它们,让我更快
此外,了解各种基本插入键有助于您在正确的位置进入插入模式:
-在光标所在的字母前插入i
-在光标所在的字母后追加a
-在当前行的开头插入I
-在当前行末尾追加A
-在当前行下方打开新行o
-在当前行上方打开新行O
接下来可能还会学习/理解各种delete、change、substitution和find/replace regexp命令。我只有这个图表,看起来它可以节省您的时间
▼/▶ Cursor ▽/▷ Target
我使用jj键绑定退出插入模式。它变成了第二天性。。。有时太多了(我在Vim会话后经常在Visual Studio中键入jj)。我使用
jk
,我可以强烈推荐它<代码> JJ 也是一个很好的选择,但我个人更喜欢前者,实际上我可以考虑使用JK。这很简单,而且(稍微)快一点。它还有一个优点,那就是你很少能找到(英语中)连续出现这些字母的单词。当你使用它时,你会感到更舒服。你还会发现做同样的事情有很多方法(或多或少),你会找到一种适合你的方法。我发现在Vim中,您总是在学习新的做事方法。如果这听起来有冲突性,我很抱歉,但是如果模态编辑几乎是Vim的主要区别特征,那么您为什么要使用Vim
(与其他高级编程友好编辑器/IDE相反)?(任何其他功能都可能在其他编辑器中找到)。对于完全公开,我可以使用VI当我需要,但绝不会考虑VIM作为我的主要编辑器,因为我无法适应模式,即使在10年以上的熟悉VI。我不认为这有什么问题。对于一些人(比如我)来说,模态编辑感觉很自然,处于“正常”模式可以让你用很少的按键和最少的和弦来导航/删除/拖动/更改各种事情。@ted-问题不在于vim所要求的模态思维。正如你所说的,有些人对此很感兴趣。问题是,为什么有人会选择vim而不是另一个编辑器,除非模态思维已经在他们的特性列表中的大优点(或非缺点)?我不是说vim没有任何有用的特性,我只是问它有哪些非模态编辑器缺少的特性。如果答案是“无”,Sean最好尝试使用非vi编辑器进行比较。@DVK我知道你现在得到了什么。模态编辑确实是vim最大的优势。它具有的其他特性(良好的脚本能力、良好/充满活力的有用社区、普遍性、快速启动时间)并不是vim独有的。如果modal thinking没有点击OP,我同意你的观点,经过不懈的努力,另一个编辑器/IDE可能是更好的选择。当我完成插入时总是点击
,这是我的手指很久以来就知道的事情,但我从未真正想过。富有洞察力的
▼/▶ Cursor ▽/▷ Target
┌───────────── 0
│ ┌────────── ^ $ ──────────────┐
│ │ ┌─────── Fo fe ────────┐ │
│ │ │┌────── To te ───────┐│ │
│ │ ││ ┌──── ge w ───┐ ││ │
│ │ ││ │ ┌── b e ─┐ │ ││ │
│ │ ││ │ │ ┌h l┐ │ │ ││ │
▽ ▽ ▽▽ ▽ ▽ ▽▼ ▼▽ ▽ ▽ ▽▽ ▽
echo "A cheatsheet from quickref.me"
- SCREEN 1 START
┌─┬─────────▷ #!/usr/bin/python
│ │ ┌───▷
│ │ │ print("Hello")
│ │ { } ▶ print("Vim")
│ │ │ print("!")
│ │ └─▷
│ │ ┌───┬───▷ print("Welcome")
G gg H M L k j ▶ print("to")
│ │ └─▷ print("quickref.me")
│ │ print("/vim")
│ │
│ └─────▷
│ - SCREEN 1 END
└──────────────▷ print("SCREEN 2")