linux工作技能第一发:vi

不知道为啥,为啥排版这么丑呢。
ok,说起第一次接触linux,大学上操作系统课,实训课也不知道为啥就成了在linux下写hello world了,还记得是red hat,觉得界面还挺漂亮,哈,那时候已经久闻vi这东西了,老师也没说我们用啥编码,我跟一个朋友也不知道怎么就乱找一通,也不知道怎么就敲了个vim出来,这啥呀,打字都打不出来,问老师,老师道,要进入insert模式呀,然后我就按了一下"insert"键,哟呵,老师真牛逼,果然能输入了,噼里啪啦的输了一大堆无脑的程序段子,老师啊,怎么编译运行啊,这下可好,老师说先保存退出,教我按:qw,按了老半天,"老师,不行呀",老师道"不可能呀",跑来给我们亮了两下神操作,牛,还真退出去了,不过代码没了,今天想想那老师果然够牛的,:wq都能记反来,我们成了受害者呀。就这样,第一次给vi虐了,不玩了,没意思。
此后,也看过网上亮出的vi功能图,整个键盘密密麻麻啥玩意儿啊,老子不待见,装逼才玩vi呢,虽然老子爱装逼,也不带这么装的。后面也有各种大神说什么emacs牛逼,我觉得肯定也是装逼的,要不然那么复杂,还不如用记事本呢。
若干年后,我发现我错了,在vs配着va用了一些时月,我发现虽然功能也的确够强大,在各种文档游走还是挺舒畅的,但总是觉得缺点啥,比如我要跳到本行行末,最土的方法就是右手向右移动放在方向键吧,一格一格按,有时候还真累啊,后来先进了,知道了End键,效率提升了许多啊,但总觉得人越来越懒,手不愿动,这个问题苦恼了挺久的,自从某天看见某大神的神操作,我发现我弱爆了,原来vi是这样用的~~~好了,废话不多说,还是把最近到处学来的懒操作记录一番吧。

1、光标移动
除了传统的方向键,vi让你右手不用移动便能移动光标,更别说使用鼠标,linux压根鼠标也没用嘛。
h,j,k,l分别代表着←,↓,↑,→。就习惯这样的操作,愚笨的我稍费了些神,一不小心就移错了。这几个键就是为了懒人准备的。
除了上面几个基本安静,vi的移动操作确实够丰富了,普通模式的0直接移动光标到了行首,^移动到行首第一个非空字符,跟正则表达式一样呢,相对应的行尾呢,熟悉正则表达式的朋友肯定知道是$了,那行尾第一个非空字符呢,经我多方查找,
g_便是了,其实呢自己也能凑出来首先移动到行尾,然后再回退一个单词,再到单词尾就大功告成了,也就是$be,其实$ge也是可以的。看自己记得住哪个吧。反正可以不用依赖鼠标,也不用大幅度移动娇贵的手了。事实上,我用了那么久的va,也不知道有没有这样的操作呢。
好了,其实上面那些功能已经很吸引我了,但人是贪婪的,当我只想移动一个单词或几个单词时候,重复的敲h,l?nonono,先按个数字再按会有惊喜,哇塞,居然这么神奇,当时我觉得真吊啊,但后来,哎,这单词几个字母我数不过来呀,老毛病又犯了,ok,程序员都懒,设计者已经把你能懒的地方都想到了,可见他才是真的懒啊。w,W,我把他当做是word的第一个字母来记得,但w,W的区别自己一时半会还是没记明白,因为大部分时间基本效果一样呀,hello-world,光标在h那儿,按一下w,发现vi把-也当一个单词了,假设按W了,他没把-当回事儿,有点明白了,我的理解就是w就是程序员儿用的,他面向的是大多数程序语言中变量命名规范,数字,_,字母。这三个货组成并连在一块儿我当成一个单词,这时候w,W没差别,假设有其他字符乱入,不好意思都是按单词处理,W这货就只认空格儿,上面的例子改成hello_world的话就不一样了,他左右都是一个单词。有向前了,肯定有向后了,b,B,对了。。back嘛,向后移动一个单词,大小写区别和w,W一样咯。
要移动多个单词,前头说的数字加指令,好用的打紧啊。
跟单词有关的指令还有一个e,E,移动到当前光标所在单词的词尾,上面$be,$ge都用到了e兄啊。大小写,你懂的。
要上下移动,数字加j,k就好了,移动到文件头部,输入一个超大的数字,999999k,果然到了,999999j,一下就到了文件尾部,查看日志经常跳到文件尾部看错误的呀。我真的是太聪明了。哈哈哈,直到有一天,我认识到了自己简直就是个2b。
gg直接跳文件头,G直接跳文件尾,简直羞死人了。
还有什么移动没,绝逼有,只是我记不起来了,记起来了或者学了再来补吧。毕竟指令多入牛毛,上面的也够我应付平时工作了。
2、插入
从普通模式进入插入模式,从大学的那位大牛老师教的insert进入外,还有i,I,a,A,o,O。
都是好用的打紧的指令啊,i使用率算是最高吧,当前光标位置进入插入模式,a呢,是当前光标位置后面一个字符进入插入模式,相当于l向右移动了一格再按了个i,这个a用的也挺多的。
I,A这两家伙比较靠谱,使用率高,因为他们既移动了又进入了插入模式。相当于用了上面移动的招式再按下了一个i或者a。
比如我要对某一样加注释,I//就好了,方便省事呀。比起^i//爽吧。。要在行末添加东西的情况不少吧,按一个A,"已经开始了么?不,已经结束了,哈哈"。
3、删除
backspace,可以在插入模式用,还有许多可以在普通模式下。
x与del用法差不多,删除后面的字符,3x删3个,4x删4个,那么问题来了,我要删整行咋办,好办,dd轻松搞定,那我要删除一个单词怎么办,也好办dw呀,delete word,一试,果然能删,不过删的是光标位置到下一个单词开头位置,哦哟,跟w应的是b,db一下试试,哦哟,果然,删到了单词头部,留了个尾巴,很长时间,为了能删除当前单词,我的操作是,b dw,然后再i,继续编写,当时也没想那么多,觉得还凑合。久而久之,我想肯定有方法,果不其然,方法来了,删除光标位置的单词方法就是,在dw中间加一个单词,i或者a。这两个指令和之前的插入指令没啥关系,但用途非常大啊。可以和n多指令结合,简直是道美味佳肴啊。
i到底是啥的缩写我也不知道,我个人理解是in,本人小学英语水瓶,在什么什么里就这么记了,a呢就死记成了all,丢人丢人,全部的意思。diw,daw都删除了光标所在整个单词,但是有区别,假设单词后面是空格的话,diw不会删除后面的空格的,daw则比较强势,把空格也全部删除了。
d$是删除到行尾,d^删除到行首,dG删除到文件末,dgg删除到文件头,各种指令组合。秒啊。
 还有个指令,就是修改,也可以归纳到删除里嘛,比较人家真的把东西给删了,而且他是删完直接进入插入模式,犹如行云流水。把上头的指令改改就能用了,把d全部改成c,好用好用,还剩了个进入插入模式的步骤。
 哟西,来讲讲a,i其他地方的用法。在代码中,经常要修改(),[],"",‘‘,{}这些配对符号中的内容吧,比如你要修改某个函数参数列表,比如fun(int a,int b),你要改成其他参数,只要光标在()范围内,好办,di)就直接删除()内的内容了,不过还是在普通模式,按下i,就可以修改了,哎呀。何不如直接ci)呢,直接开始修改,快人一步,你还可以vi),v是选择开始指令,()内的内容还在,但都反白了,这时候你可以x删除,或者y复制。其他的括号啊,引号啊,以此类推。

a的话呢就是连括号一起操作,要删一起删要选一起选,all嘛。
 多层嵌套的括号((a+b)*c),这样的情况,假设你光标在+上,怎么游刃有余的操作里层或者是外层括号内容呢,比如此时要选择(a+b)*c,不用说肯定要用的i,但仅仅用vi)此时只会选择a+b,那有啥方法呢,要告诉他要操作两层,v2i),试试看,果然,v2a),整个结构全部选上了,好神奇。

a,i就是一对好帮手,帮助我做了很多以前做不到的事。

4、复制,粘贴

y是复制,p是粘贴,y复制我不知道诶,p的话应该是paste吧。

经常要做复制,在vs中之前复制一行一直都是光标位置啥都不管,ctrl+c,一行复制下来,还复制了个换行符,挺方便的,vi提供的操作更简单,一个手指操作,yy,复制一行,2yy,复制光标所在位置开始的2行,又完胜了vs+va啊。

再来跟a,i兄弟搭配,yaw可以复制当前光标所在单词以及单词后的空格,yiw也复制单词,但不包括后面的空格就是了。

东西复制好了,在哪儿粘贴好呢,这可头疼了,当初第一次老会复制错位置,p的话会把复制好的东西粘贴在光标所在行的下一行,P的话会把复制好的东西粘贴在光标所在行的上一行。

5、区域选择

上面介绍过了,就是v了,按下v,然后上下左右可以选择区域,任意的移动指令都能起作用,不管是按单词选择还是按行选择。

按V的话则是只能操作上下移动了,因为他是以行为单位。

vim中按下ctrl+v,可以进行特地区域选择,很好玩,在vs中,一直是通过alt+鼠标来框选的,这里提醒一下,linux的话ctrl+c没问题,假设是windows下的gvim,因为和粘贴冲突了,他取而代之的指令是ctrl+q,在vs中使用viemu插件就纳闷了很久。强迫症的孩子伤不起啊。

6、撤销,重做

就是基本每个软件都有的undo和redo

在vs里用习惯了ctrl+z和ctrl+y,vi中undo的指令是u,redo是ctrl+r。不用赘述了。

7、杂七杂八的

什么:wq :w :q :q! :sp xxx  在windows下基本用不到。。脑袋目前就想到这么多,这些对于日常工作足够用了,那够写一本书的vi手册,我还是不看了。哈哈,好啦,睡觉吧

时间: 2024-08-11 09:56:46

linux工作技能第一发:vi的相关文章

linux工作技能第一发:增删改查

新手第一发,在linux下面工作,首先必须得了解的必须是对文件系统的增删改查. 学习的第一条linux指令估计就是ll了,在centos下很友好,输入ll显示的信息还真是足够的丰富呀,知道他是别名,但为何debian不预先设好呢,搞得新手ls -l都敲的不是很习惯了. alias -p显示当前系统的别名列表,在centos下可以看到ll实际上就是"ls -l --color=auto"的别名,显示的信息比alias多的去了. 在debian下想爽爽的用ll又不想去修改配置文件,alia

王垠:完全用Linux工作 - imsoft.cnblogs

完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了. 我不是一个狂热的自由软件份子,虽然我很喜欢自由软件.这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的. 这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的.我现在是作为一个用户而不是一个开发者来说话的,我

完全用Linux工作,抛弃windows

录一篇旧文 作者:王垠 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了. 我不是一个狂热的自由软件份子,虽然我很喜欢自由软件.这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的. 这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的.我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作

转:《完全用Linux工作》作者:王垠

<完全用Linux工作>作者:王垠 完全用 GNU/Linux 工作 理解 GNU/Linux 注:本文是清华“牛仔”王垠的“成名作”,在网上引起很大的争议.对他崇拜地五体投地者有,对他嗤之以鼻者也有,总之成了一年多以前Linux 爱好者的圈子里的一个很有意思的现象.之后他对这篇文章进行了很大的修改,已经没有了原来那种意气风发.现存的版本如白开水一般无味,请参见:http://learn.tsinghua.edu.cn/homepage/2001315450/ 尽管他原来的观点有所偏激,但我还

完全用Linux工作-王垠

前言,一段正经的屁话: 这篇文章已经被奉为经典,反复传颂.毫无疑问,当我这样毛头小子遇到这样的感情强烈,立场分明的文章,要是能再带上一点高大上.处处散发着为我等吊丝着想的品质,我等就会感激涕零,仅仅追随.即时已经过去很多年,似乎有的人已经对此默然,即使仍有万千呲之以鼻者,但我等还是找着了方向似的,励志效忠于此. 今日贴下此文,要经常查看,作为信徒,让Linux根深蒂固. 正文部分: 完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成

完全用Linux工作 | 快课网

作者:王垠 完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了. 我不是一个狂热的自由软件份子,虽然我很喜欢自由软件.这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的. 这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的.我现在是作为一个用户而不是一个开发者

【转】完全用Linux工作

我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. NU/Linux 不是每个人都想用的.如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了. 我不是一个狂热的自由软件份子,虽然我很喜欢自由软件.这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的. 这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的.我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用层面的.是为了告诉大

王垠代表作《完全用Linux工作》

<完全用Linux工作>作者:王垠 完全用 GNU/Linux 工作 理解 GNU/Linux 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 注:本文是清华"牛仔"王垠的"成名作",在网上引起很大的争议.对他崇拜地五体投地者有,对他嗤之以鼻者也有,总之成了一年多以前Linux 爱好者的圈子里的一个很有意思的现象.之后他对这篇文章进行了很大的修改,已经没有了原来那种意气风发.现存的版本如白开水一般无味,请参见:http:

Linux学习方法之以始为终—Linux工作分类

/** ****************************************************************************** * @author    暴走的小哥哥 * @version   V1.0.0 * @date       2016-02-29 ****************************************************************************** * <  Beijing university