新手刚接触Vim,希望大虾们推荐一些入门的练习教程,现在还只是把Vim当成普通编辑器使用..还有,按Esc回到普通模式好像有点麻烦,要伸到键盘的左上角,有没有什么简便的方法呢?先谢谢了!
无他,唯手熟耳。
" Arrow keys are evil map <up> <nop> map <down> <nop> map <left> <nop> map <right> <nop>
另外,Ctrl-[
也可以退出编辑模式。
我使用vim有一年了.日前正要写一个vim的cheat sheet,就提前在这里写下吧。
首先 vim != gvim
任何时候按下ESC键会进入普通模式.普通模式下可以按下: 来输入命令.
普通模式按下i或a 进入插入模式,这时你可以编辑文本。
现在你可以用vim写东西了.
我们需要更快的编辑
1.快速的定位光标:
2. 快速的编辑:
在普通模式下:
3. 更精细的粘贴复制:
4. 搜索
普通模式下按下 / 向下搜索, 按下?向上搜索
5.对齐
gg=G 快速对齐整个文件
6.标签操作
7. 切割窗口操作
有没有注意到我们以上一直没有提到vimrc和插件。
现在到时候了。
比如,我们coding时喜欢显示行号:命令模式下:set nu或者 :set number
关于vimrc, 有很多值得研究商讨的地方,你可以参考下我的vimrc, 我都进行了详细的中文注释
vim 的配色有三个比较出名,solarized , molokai , badwolf
关于vim 的插件,只有这么几句需要说:
好了,吃饭去。。到此。
嗨!我提供一個非常棒的方法:
玩 vim 遊戲!
如果你是使用 Ubuntu 系統,請輸入:
或者透過一個很酷的網頁 vim 遊戲:
vim 冒險家
http://vim-adventures.com/
上面的人说的都很详细了,不过对于esc键建议用改键之类的换成Caps Lock这样按起来要方便很多。
据说RMS写Emacs的时候的键盘是这样的
很明显Esc和Control的距离要很舒服的,如果有钱也入一块HHKB吧。
用vim主要是自己定义各种功能,使用各种插件。 主要是配置vimrc, 你可以参考别人的vimrc,在github上搜索vimrc,比如https://github.com/search?q=vimrc&ref... ,看看别人是怎么配置的,改成自己的就ok了。
esc可以用jj 或者 jk 代替。
inoremap jk <ESC>
看完自带的教程(有中文的,下载链接,下载需要翻墙),但是不用死记硬背,只要记住有哪些功能就可以了。
遇到似乎可以用到这些功能的地方就开始查阅教程,然后慢慢的你查的会越来越少,越来越少,慢慢的你就会了。
举个例子:
Hello World foobar
如果你想删除foobar ,那么你可以用ffdw
这个组合命令(f是在一行内查询,后面那个f就是foober 的首字母,这是命令的第一部分,将光标移到foobar这个单词上面,d是删除,w是选中一个词,组合起来就是删除一个词),非常快捷,而且都是简单命令的组合。
然后如果你想要处理比较复杂的场景,比如
foobar foobar foobar foobar
只把前面的foo 删掉,留下那个bar,这时候虽然vim提供了处理的功能,但是我们不用管,用宏录制的功能(能保存你的操作,你可以简单的重复)把简单的命令组合起来,就可以做很多很复杂的工作了
比如上面这个例子(手头暂时没有Vim,凭记忆可能有错),
qa (将命令录制到a这个剪贴板上{vim有好多个剪贴板,比如abcdefg……}) 3x (重复三遍删除操作,将foo删掉,其实也可以用f命令来搭配,对复杂的情况更适用) 0 (移动到行首) j (移动到下一行) q (停止录制) 3@a (重复三遍刚才录制的命令,3就是将命令重复3遍,@就是运行,a就是刚刚保存的那个剪贴板)
这就解决了。
Vim 根本不难,原因在于90%的状况都只要很简单的一些命令的灵活搭配。
剩下10%的状况查教程也很容易知道。你让一个会用Vim的人默写命令,在对比所有的命令,会发现人家只知道很小一部分。
当年疯狂在服务器上敲代码的时候, 我们整个团队都变成了vim的用户. 这些用户里面有一种是什么插件都不用的, 有疯狂插件党(配置自动补全, 不会比Xcode差), 当然vim占用的内存和运行速度也不敢恭维.
我觉得在训练熟练以后, 无插件党基本上编辑文件已经毫无问题了(objc这样的项目还是算了). 但是vim的天生短板在于项目管理, 一直使用:bf :bn 这样切换 buffer, 在项目开发中是不可想象的.
所以我到现在为止用且只用一个插件 FuzzyFinder http://www.vim.org/scripts/script.php...
并且我还给 FuzzyFinder写了一个一键安装脚本 https://gist.github.com/kernel1983/30...
可能很多朋友爱折腾, 形成自己风格的vimrc, 但是我比较反对, 因为作为一门技能, 我们要追求通用性, 就是ssh上任何一个地方, 都能瞬间开工. 如果太依赖插件你就废了, 花那么多时间配置, 你还不如安装一个你熟悉的编辑器呢.
4 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.5k 阅读
1 回答1.3k 阅读
1 回答1.1k 阅读
1 回答952 阅读
1 回答877 阅读
用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能。这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好
零
学会盲打
壹
配置文件先从最简开始,在 伍级 前别考虑配置插件,千万别硬背命令,千万别直接取用别人的配置文件
基本还是长时间待在 insert mode 下,会觉得 vim 也不过尔尔,也不好用,
这个时候,编辑效率可能比用原来的一般编辑器还低,别人问使用什麼编辑器时,
多半会回答:vim 再配一个 nano, kate, kwrite, gedit, geany 或其他 IDE 之类的
贰
养成习惯待在 normal mode(normal 不是白叫的),只有输入时才进入 insert mode,输入完马上 <ESC>
学习 normal mode 下的移动命令,这个时候输入文字标准流程:
这个时候,编辑效应会恢复到和你之前用的普通编辑器一样,甚至有少量提高
叄
学习什麼是 operator(命令 d y c 等),什麼是 motion(所有能移动光标的命令,h j k l w e f t / ? 等等),
学习 operator + motion 的方式,如 ct. (将当前光标到 . (点) 之间的内容删除并进入 insert mode 准备修改)
学习基础的 Ex 命令,:s 什麼的
这个时候,编辑效率开始明显提高,在用其他一般编辑器时,会开始觉得不习惯和低效率
肆
学习 text-objects,知道 operator + text-objects 的方法,可进行手术般精准的定位和修改,
既然你主要用在 c/c++,举一些在这个情况下有用的例子:
ci" (由 change operator 和 text-object i" 组成)
yaB (由 yank operator 和 text-object aB 组成)
gUiw (由 make uppercase operator 和 text-object iw 组成)
这个时候,开始知道为什麼 vim 精确高效,而且并不是因为全键盘无需鼠标
伍
习惯 operator + motion 后,发现 . 命令很好用,多注意使用可重复的命令组合
练习使用书签定位,q 记录宏,使用多个 register,使用 args,使用 buffer
使用其他的 Ex 命令
这个时候,想不起没用 vim 之前的日子是怎麼过来的
陆
开始 map 经常反覆使用的命令,开始写 vimscript,开始知道自己需要什麼样的插件
试推荐几个:
pathogen 或 vundle,tagbar, CtrlP, Gundo, UltiSnips,surround,Syntastic,Conque,ack.vim,vim-commentary,fugitive(如果是 git 用户)
还有不少,但多对 c/c++ 没直接帮助,就不提了
这个时候,对其他编辑器提不起兴趣,或许 emacs 除外
柒
拥有完全个人化的 vimrc,基本进入化境,成为江湖上的传说
常有旁人观察你编辑后,激起雄心壮志想要学 vim,尝试几个小时候因为觉得热键太不"人性化”而放弃,
但偶尔会向人提起他见过江湖上有你这麼一号人物