我经常使用MacVim(和gvim)。我熟悉并使用了很多基本的移动命令(b
,w
,$
,0
,G
)。然而,对于很多事情 - 例如在屏幕上选择特定线条或跳到不同线路中的特定列 - 我使用鼠标(有时与我的左手在键盘上一致)。它还有助于我的鼠标有一个滚轮和用于更改标签的按钮。
我还需要承认......我使用键盘上的箭头键而不是hjkl
。
我认为我的速度(以及计算机上的姿势)将会因为不必从插入模式中逃脱,以及将双手放在键盘的主要部分而得到改善。
是什么让你放弃鼠标?在行和列之间快速移动,滚动等有哪些最有用的快捷方式?
此问题的灵感来自this recent post
答案 0 :(得分:8)
我认为我的速度(和姿势在 计算机)将不会改进 必须逃离插入模式
不,您必须在输入所需内容后立即退出插入模式。它很快就变成了反射,所以你并没有真正浪费时间(我有时甚至在完成网络表单后按下逃生......)。普通模式不只是用于移动,它用于执行大多数操作(从输入中省略):例如删除或移动文本部分。您还可以使用相应的键进入插入模式: o 开始一行, S 替换一行(同时保持缩进), A 移动到行的末尾, c + motion
替换几个单词或直到给定的字符...所有这些都可以保存击键。
鼠标看起来很快,但实际上它并不精确,所以你会浪费时间(除了键盘的来回不变)。 ViM有一长串移动命令(参见:help usr_03
),在掌握时,在大多数情况下比鼠标更快。
尽可能使用搜索(/
,?
,*
,#
,f
,t
...)。我个人使用 Ctrl +( d , u , f , b )a许多。此外, Ctrl +( o , i )和``
对于回到搜索之前的位置非常有用其他
h , j , k , l 可以将右手放在有用的命令附近( i , u , o ...):我总是指责他们。箭头强迫你移动你的手。
尝试查看:help
中的一些命令,然后大量使用它们,你会根据情况习惯你应该使用什么。没有人以同样的方式使用ViM。
答案 1 :(得分:5)
我在vim中使用的键盘运动越多,我就越不想使用鼠标。在我经常从键盘移动到鼠标的延长时间内,这对我的手腕造成了伤害。
如果你想以vim的方式强制做事,请拔掉你的鼠标一段时间!您使用键盘的次数越多,您就越喜欢它。这对我有用。
对于在行之间移动,我通常只使用jk
,但我经常使用:line_num
跳到行。如果我正在跳过几个单词,我通常会使用wbe^0$
并在w
,b
或e
前面添加修饰符。还有移位的版本WBE
,它们也常常派上用场。
答案 2 :(得分:3)
我必须承认我经常使用箭头键在vim中进行特定的移动。 我很少使用hjkl。但是,我发现我的大多数导航都是使用其他命令完成的,例如w(跳过单词向前),b(向后跳过一个单词)。将其与3w(前置3个字)等修饰符相结合。 :跳到特定行。
我从来没有真正放弃过鼠标,因为我从未真正开始使用鼠标。我可以说的是,在没有vim所有键盘快捷键的情况下尝试使用编辑器会感到非常痛苦。
答案 3 :(得分:3)
我从命令行运行vimtutor
(OS X中的Terminal.app)。它使用教程文档运行vim
。那份文件真的让我意识到了一些命令的力量。你将获得一些对你最有用的东西,并随着时间的推移获得更多。最终你会发现自己越来越少地使用鼠标了。
答案 4 :(得分:3)
一个真正提高移动速度的命令是 f 。 f 加上一个字符将跳转到当前行上该字符的第一个匹配项。按; 将跳转到下一个匹配项。当然,这可以与其他命令结合使用。因此,例如,通过按 d + f + )来实现删除所有字符,包括第一个右括号。
答案 5 :(得分:1)
你可以在hjkl中认真地围绕jk旋转你的生活。
nnoremap <c-k> ddkP "move current line up one
nnoremap <c-j> ddp "move current line down one
vnoremap <c-j> dp'[V'] "move visual block down one
vnoremap <c-k> dkP'[V'] "move visual block up one
"These may be a bit more esoteric to me"
inoremap jj <esc>o "Insert mode can move to next line (works mid line)
inoremap kk <esc>O "Insert mode new line on previous line
也适用于桌面gui(ion3和gnome)
win j - 下一个窗口
win k - 上一页
(如果你整天在vim中进行编辑,这比 alt 标签
还读到:他使用j和k完全向上和向下滚动motion.txt。
答案 6 :(得分:0)
我学会了vi
所以对我来说,鼠标从未用过文本编辑器。
我不使用hjkl
,除非机器/网络/键盘/其中之间的配置不合理。
答案 7 :(得分:0)
在有意义的地方使用鼠标。它经常(复制/粘贴到其他gui应用程序和从其他gui应用程序粘贴)。
回答你的问题,但是:一旦你开始使用vim作为用宏转换文本位的工具,这些动作将全部开始落实到位;)
答案 8 :(得分:0)
我想你想知道在插入模式下是否有快速移动方式(不使用鼠标或箭头键)但不幸的是没有;你必须逃离插入模式。但是我知道一直跳到你的 Esc 键可能真的很烦人,这就是为什么我养成了用 Ctrl + c逃避的习惯。 ,它要快得多。
答案 9 :(得分:0)
我几乎从不使用hjkl,因为它太繁琐了。我经常试着跳到我想去的地方。那里有一个很棒的cheat sheet(一个Dvorak version也是可用的(虽然它是PDF格式)),你可以盯着并想象这些可能性。
大多数情况下,我使用f,F,t和T,有时它们会通过输入前面的数字来增强,例如d2t)
会删除第二个关闭的paren。有时我使用搜索。很多时候我使用w,W,b,B,e和E.它们都非常棒。
当我看到vim用户在视觉模式中遍布整个地方只是为了删除文本时它让我感到不寒而栗,因为有更简单的方法(并且hjkl只会让你的手臂移动更少,他们不会改变数字按钮按下)。
我所做的一些我不知道是否常见的是重新映射我的箭头键为<Esc><Up>
等等。无论出于什么原因,我开始总是四处走动,假设我已经恢复正常模式,所以我就这样做了......
关于Vim最大的一个问题是,现在当我在任何其他地方编辑任何其他内容时,我会一直逃脱并在每次更改后输入:w
......