VIM超快速导航
我错过了使用其他编辑器的唯一方法是用鼠标find我的位置。 我可以用眼睛看文件上的特定区域,并用鼠标的移动和点击我在那里。 随着VIM我必须jjjjjkkkkkkjjjjhhhh …几乎在那里哦,废话我错过了3个字符,三。
我正在学习做标记,我发现一个很好的书签插件,我可以用<f3>
创build标记并销毁它们,然后导航到它们,遗憾的是标记在文件closures时被遗忘。
你怎么都超级导航文件? 我知道我也可以做5j7k4j5h等,但必须有一个插件,可以读我的眼睛,把光标放在我真正需要的地方。
我也学会了使用/%来search特定的术语。 它确实有帮助,但是所有匹配的字符都在整个文档中突出显示。
尝试$ vimtutor
,它会教你一切你需要知道开始。
hjkl
是冰山一angular的尖端,很less使用,至less在我的情况下。
wWEe
和BbgegE
都允许BbgegE
移动:
-
w
和e
前进,W
和E
考虑到空格和标点符号" here the * marks the default location of the cursor " and each letter shows where you jump when you hit the key. Latin: Lorem ipsum dolor sit amet. * eee * EEE * wwwwwww * WWWWWW
-
b
和ge
倒退,B
和gE
考虑空格和标点符号Latin: Lorem ipsum dolor sit amet. bbbb * BBB * ge ge ge* ge gE gE gE*
fFtT
用于达到当前行上的特定字符;,
用于重复那个运动,在同一个方向上;
并在相反的方向,为:
-
fm
跳到下一个m
前进,F
后退Latin: Lorem ipsum dolor sit amet. * fm ; ; ; Fm *
-
tm
在下一个m
前跳,T
后退Latin: Lorem ipsum dolor sit amet. * tm ; ; ; Tm *
/?
用于从当前光标位置跳转到第一个出现的模式:
-
/pattern
前进Latin: Lorem ipsum dolor sit amet. * /ips
-
?pattern
落后Latin: Lorem ipsum dolor sit amet. ?Lat *
0$
用于跳转到该行的第一个和最后一个字符。
(whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace) 0 * $
^g_
用于跳转到该行的第一个和最后一个可打印字符。
(whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace) ^ * g_
Single和Combined ()[]{}
用于逐句或逐段地移动或通过代码块来移动代码块。
<Cb>
和<Cf>
用于向前和向后滚动屏幕。
<Cu>
和<Cd>
用于向前和向后滚动半屏。
H
, M
和L
将光标移动到视口的顶部,中部和底部。
zt
, zz
和zb
将光标下方的行移动到视口的顶部,中部和底部。
等等。
:help motion.txt
会打击你的思想。
除了vim的动作命令之外,我发现一个名为EasyMotion的vim插件对于导航非常有用,如果你熟悉vimperator或者pentadactyl,EasyMotion就会把提示模式带回到vim。 这里是一个animation演示, 这里是video教程。 希望这对你有所帮助。
在vim中有几十种方法可以移动,这是它真正强大的领域之一。 我用{和}很多,在这个方向上下移动到下一个空行。 %对于来回移动到任何types的匹配括号是有用的。 W和B前后移动一个“单词”。
Vim手册的移动部分可能是值得回顾的。
vim有鼠标支持! 试试这个(在你的.vimrc中):
set mouse=a
旁注 :作为一个屏幕用户,我发现我也需要
set ttymouse=xterm2
为此工作。
我个人更喜欢使用:
"/<chars><enter>" to quickly move to somewhere ( extremely fast! trust me! ) ":<number>" to go to some line, "ctrl + f/b" to forward/back "g;" to move to the last editing place. "w/b" to move by word "jklh" to move your cursor to the exact position
使用选项relativenumber
( :help relativenumber – 包含在Vim 7.3中 ),您可以通过[count]k
或[count]j
移动到达您的眼睛下方的行,您可以使用ftweb
在当前行中移动由@romainl。
除了{
, }
, (
, )
, <number>cb
, <number>cB
, <number>cW
和%
,我使用这样的导航技术:
-
diw
,diw
(ciW
,diW
) 快速编辑/删除光标下的单词(包括非空格字符) -
ci(
,ci"
(ca(
,ca"
)等)可以快速编辑括号内的括号,括号(括号,引号),同样适用于d
。 - 使用大写字母标记以全局(跨文件)设置它们并持久(缓冲区closures时)。 例如,
mA
将创build全局标记A
,该标记可以用'A
命令(或`A
来尊重列)。 -
gf
快速进入光标下的文件 -
f
,t
(F
,T
)移动到字符前,字符右(左)(使用;
重复)。 这些对d
和c
命令特别有用(使用重复)。 -
^]
移动到标签,然后^T
移回。
和很多其他的方式来移动:)
查看更多信息: http : //www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/
PS对于rails用户,有一个非常有用的rails-vim插件,你可能也想看看。
这是学习主要导航命令的好地方,vim的一些function/速度来自于动作和动作的组合, d10j
> change word, d10j
> delete 10 lines down等。另外这个和这个很有趣读取。
您可以:set nohlsearch
closuressearch字符的突出显示。
我也使用ctags进行导航。