这段时间一直在跟Linux打交道,正好顺便也学习了一下Vi的使用,就此准备长期用下去了。目的很简单,就是为了更熟练地使用Linux而做准备。Vi与其它Windows环境下的文本编辑器不同在于它的操作方式几乎可以全命令来进行工作,节省了鼠标在屏幕上划拉的时间,而且新鲜感十足。
我是在Window环境下使用gVim7.3来进行练习的,熟悉并掌握它并不难,我总结了以下两点。
一、自由切换各种模式
靠“手感”,怎么说呢?Vi最基本的有三种模式,它们切换后的展现形态很相似,即不容易区分,刚开始用的时候,总是分不清哪个是一般模式,哪个是编辑模式,真的是很恼火。我用了半个小时先熟悉了一下这三种模式切换的展现形态,这点真的很重要;学好Vi的根基就在于此,必须要搞明白。建议大家学Vi命令之前,首先弄清三种模式的切换,而Vim在此基础上又扩展了很多模式,不过都是基于这三种模式而组合成形成的。
有一个小经验,就是注意光标的线条粗细,当线条特别细的时候那是编辑模式,别妄想输入命令;线条变粗的时候那就是一般模式了,就可以输入命令。
二、简化模式
熟悉过后,就可以进行灵活变化了,我归纳了这三个模式的大致意图。
1.想使用命令就进入一般模式。
2.想输入文字,就进入编辑模式。
3.想输入命令就要先进了一般模式。
可以发现,有两个模式存在着重复情况,因此可简化成为两种模式:一般模式和编辑模式,说白了就是输入命令操作和编辑文本操作。切换二者的时候无非就是Esc或a、i、o、r。
这里我省去了命令模式这么一个概念,我的考虑是这样:我经常用的命令都是需要进入到一般模式才能使用,索性就去掉它,在下意识使用的时候不用去考虑要切换三种模式的形态,而只是针对两种模式进行切换,复杂度降低,效率肯定会高很多。
所谓操作熟练,我个人理解就是下意识的操作,大脑不用经过多么深思熟虑得就能完成工作。
小提示:有个弊端就是由于中文输入法的存在,必须要先把中文切换成英文,才能正常使用命令,使操作不会太连贯,总之习惯就好了。
三、常用命令介绍
详细的命令我就不一一介绍了,仅介绍我最近常用的命令,高级特性我也没专门去研究,也很少能用上,网上介绍的都很详细,大家可自行查阅。
以操作为驱动,来输入命令;而不是输入命令来进行某种操作,这是闲着蛋疼的时候瞎琢磨出来的小众方法。由于Vi的命令可以组合着使用,第一反应应该是操作,而不是命令,这样命令的搭配灵活度就显得宽广了。
提示:懂得这意思就足够了,没必要深究,关键还是看熟不熟练。还有就是命令中的英文字母是区分大小写的。
分类来介绍吧,以便加强潜意识的认知敏感度。
1.模式的切换
(1)一般模式切换到编辑模式:i(在光标所在当前字符之前插入字符)、a(在光标所在当前字符之后追加字符)、o(在光标所在当前行下面追加新行)、r(只替换光标所在当前字符)
它们的大写形式就不用那么关注了,目的只有一个,切换到编辑模式就OK。
(2)编辑模式切换到一般模式:Esc(传说中的Esc)
个人建议:只要你在写东西的时候,需要停下来,思考一阵儿的时候,别忘了按Esc,也就是说除编辑文本的情况下,其余情况都要处于一般模式下,这样才叫真正地使用Vi。
2.光标的移动
(1)最基础的移动:h(左),j(下),k(上),l(右)
花费大约十几秒的时间就能够熟悉了。我自己编着玩的口诀:
左右在两边,下上在中间。正常情况下,用vi打开文本,光标都会处在第一行,也就是说向下移动的欲望比向上移动的欲望要强烈,所以j在k的前面。
用键盘的上下左右键也是可以的,反正怎么舒服怎么来。
(2)翻页移动:ctrl+f(屏幕下一页),ctrl+b(屏幕上一页)
用键盘的PgUp和PgDown也是可以的。
(3)移动到首字符和移动到末字符:0(首),$(末)
这个在自动换行的时候非常有用。什么是自动换行?不是手动按回车换行的那种换行。当屏幕宽度放不下所显示文字的时候,则Vim自动换行,这种换行不会算做行数,也就是说属于一行中的文字。当用j和k定位行时,定位的是之前光标所停留在的位置上,而不是直接定位到屏幕中你想要定位到的那个行,只能用h或j来去定位到那行。所以使用命令0和$就显得十分便捷了。描述的不是很清晰,大家可以自行试一下。
(4)移动到首行和移动到末行:gg(移动到首行),G(移动到末行)
(5)移动到指定行:ngg(n代表着数字,gg代表着移动)
例如:20gg,形象化解释就是这个样子,我要去20行,go!go!
(6)移动到模糊行:n+回车
例如:20+回车,我要向下移动20行!
3.全文搜索与替换
(1)搜索:/要搜索的文字
例如:在一般模式下直接输入命令/Vim,然后回车进行查找所有匹配值,如果有多个Vim,就按n一个一个查找。
(2)替换::%s/被替换的文本/要替换的文本/g(gc)
例如:在一般模式下直接输入命令:%s/Vim/vim/gc,会查找到所有Vim的匹配值,然后会逐个询问你是否替换成vim;y是替换,n是不替换。
4.文本编辑的基本操作
(1)删除:x(删除当前字符),dd(删除行),ndd(n代表行数,表示删除多少行,包括当前行),dG(删除当前行及后面的所有行)
d0(删除当前字符之前从首字符起的字符,不包括当前字符),d$(删除当前字符及之后至末字符的字符,包括当前字符)
(2)复制:yy,nyy,yG,y0,y$
上面的功能特性与删除类似,弄懂一个,其余均能融会贯通。
(3)粘贴:p
(4)合并两行的文本:J(将光标所在当前行与其下一行进行合并)
(5)撤销与恢复:u(Vim支持无限次撤销),ctrl+r(无限次恢复)
(6)剪切:Windows下ctrl+x,Linux下Shit+Insert
(7)选中整行:V(注意,大写V)
5.文件的基本操作
(1)将文件写入磁盘: :w(写入),:w!(针对只读文件,强行写入),:wq(写入并退出),:x(写入并退出),:w 文件名(文件另存为)
(2)退出Vim: :q(退出),:q!(文件写入过了,但不保存强行退出)
6.其他常用命令
(1)操作Vi过程中,需要去调用shell命令 ::!命令
Window命令或Linux命令都可以。例如::!cmd,:!ls
(2)再打开一个文件进行编辑,也就是创建一个新的tab::tabnew 文件路径
如果tab多的话,可用命令gt来切换它们。
(3)垂直分割窗口:ctrl+w+v
输入的时候会两边会同布改变,这个命令只对gVim有效,shell中无效。
切换两个窗口的命令是ctrl+w+w。
四、Vim环境变量的配置
Vim提供了非常灵活的环境参数供我们来配置它,有点像DIY的精神。下面还是以简单为主,介绍几个经常配置的变量:
"终显示行号
set nu!
"编码设置
set enc=UTF-8
"禁止生成临时文件
set nobackup
"始终显示行号
set nu
"Tab键的宽度
set shiftwidth=4
set tabstop=4
"自动缩进
set ai!
"搜索忽略大小写
set ignorecase
"配色方案
colorscheme evening
"智能补全
set completeopt=longest,menu
"去除gvim的菜单栏和工具栏
set go=
五、总结
以上就是最简单最经常使用的操作命令,它们仅仅是Vim命令当中的冰山一角;Vi最大的魅力体现在可以将命令组合起来一起使用,(宏命令?),大家有兴趣可自行研究。偶尔换换不同口味的工具也是蛮不错的,至少要比成天写单调的代码好得多。
用下意识去输入命令,而不要在脑中过一遍再输入,两者的境界显然没可比性。
本文就是用gVim7.3写出来的,全程没用过鼠标,感觉良好,无不良副作用,请大家放心使用。
分享到:
相关推荐
1. **序言**:作者分享了使用vim的心得体会,对初学者提出了一些建议,并展示了自己的vim工作环境。 2. **使用会话和viminfo**:讲解了如何通过vim的会话管理和viminfo功能来保存和恢复工作环境,避免重复设置。 3...
vim的使用心得,调整vim的编辑界面方法,一步一步教你学习vim
本文将详细介绍Vim的一些基本设置及高级用法,并分享个人在使用Vim过程中的心得体验。 #### 二、Vim简介 Vim是由Bill Joy最初设计的Vi编辑器发展而来的增强版,其主要特性包括:强大的文本编辑功能、高度自定义的...
在数字时代的编程世界中,Vim编辑器的地位犹如一颗璀璨的明星,深受程序员和系统管理员的青睐。...无论是新手还是资深用户,都可以通过这些主题和插件,将Vim打造成为符合个人需求的IDE,充分感受编程带来的快乐。
在Vim中使用Solarized配色方案,首先需要将其下载到本地。根据提供的信息,可以从GitHub(https://github.com/altercation/vim-colors-solarized)获取。下载完成后,解压得到的压缩包"vim-colors-solarized-master...
- 在线论坛和社交媒体平台上有很多活跃的VIM用户,可以交流心得和解决问题。 - 各种书籍和在线资源提供了丰富的学习材料,帮助用户深入了解VIM的功能。 通过以上内容,我们可以看出VIM不仅仅是一款简单的文本编辑器...
本书由一位经验丰富的Vim用户撰写,其深厚的Vim使用经验和教学能力确保了内容的实用性和深度。作者通过分享自己的实践心得,为读者提供了详实的操作指南和技巧。 #### 版权与免责声明 本书内容受版权保护,任何...
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。...这个极具Unix特色和风格(simple is the best)的编辑器相信会给您带来不同的感受。
在本文中,我们将探讨作者学习Vim的心得体会,并分享一些关键的设置和技巧。 首先,作者强调在开始使用Vim之前,进行适当的配置至关重要。这包括禁用vi兼容模式(set nocp)、启用多国语言支持(set ru)、以及启用...
这是一个国际版本,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,请放心使用。这个极具Unix特色和风格(simple is the best)的编辑器相信会给您带来不同的感受。
- **参与社区**:加入Vim论坛、Reddit的r/vim小组或Stack Overflow,与他人交流心得,解决问题。 #### 六、结论 Vim的强大之处不仅在于其丰富的功能,更在于其高度的可定制性,使其能够适应不同用户的需求。通过...
- **用户论坛**:加入Vim相关的在线社区,与其他用户交流心得体验。 - **开源项目**:参与开源项目贡献自己的力量,同时也能从中学习新的技能。 综上所述,《Hacking Vim》不仅适合已经熟悉Vim基本操作的用户进一步...
虽然VIM的初学者可能会觉得操作复杂,但一旦熟悉并掌握了基本操作,就能感受到其高效和灵活。通过持续实践和学习,可以将VIM定制成符合个人需求的高效编辑器。 总之,VIM作为Linux环境下的一款强大文本编辑器,其...