鸟哥的linux私房菜读书笔记10
来源:互联网 发布:mac怎么调节字体大小 编辑:程序博客网 时间:2024/06/06 02:04
第十章:vim程序编辑器
学习vim的原因:所有的unixlike系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;很多软件的编辑接口都会主动调用vi;vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计;程序简单,编辑速度相当快速;
vim是vi的升级版本,可以用颜色或底线等方式来显示一些特殊的信息;
vi分为三种模式:分别是一般模式、编辑模式和命令行模式分别如下;
一般模式:以vi打开一个文件就直接进入一般模式了。可以上下左右移动光标,也可以删除字符或整行,也可以复制和粘贴;
编辑模式:在一般模式中可以进行删除、赋值、粘贴等操作,但是却无法编辑文件内容。要等到按下“i、I、o、O、a、A、r、R”中任意一个才能进入编辑模式,退出编辑模式按esc;
命令行模式:在一般模式,输入“:、/、?”3个中任意一个就可以将光标移动到最下面那一行,在这个模式可以提供你查找数据的操作,而读取、保存、大量替换字符、离开vi、显示行号等操作则是在此模式下完成的;
使用vi进入一般模式:vi test.txt
按下i进入编辑模式,开始编辑文字
按下esc键回到一般模式
在一般模式中输入:wq保存后离开vi
vim按键说明:
第一部分:一般模式可用的按键说明,光标移动、复制粘贴、查找替换等;
ctrl+f:屏幕向下移动一页,相当于pagedown;
ctrl+b:屏幕向上移动一页,相当于pageup;
ctrl+d:屏幕向下移动半页;
ctrl+u:屏幕向上移动半页;
+:光标移动到非空格符的下一行;
-:光标移动到非空格符的上一行;
n<space>:n表示数字,按下数字后再按空格键,光标会向右移动这一行的n个字符;
0或者功能键[Home]:移动到这一行的最前面字符处;
$或者功能键[End]:移动到这一行的最后面字符处;
H:光标移动到这个屏幕的最上方那一行的第一个字符;
M:光标移动到这个屏幕的中央那一行的第一个字符;
L:光标移动到这个屏幕的最下方那一行的第一个字符;
G:移动到这个文件的最后一行;
nG:n为数字。移动到这个文件的第n行;
gg:移动到这个文件的第一行,相当于1G;
N[Enter]:n为数字。光标向下移动n行;
查找与替换
/word:向下寻找一个名称为WORD的字符串;
?word:向上寻找一个字符串名称为word;
n:这个n是英文按键;代表重复前一个查找的操作;向下继续查找;
N:这个N是英文按键;与n刚好相反,向上继续查找;
使用/word配合n及N是非常有用的,可以重复第找到一些关键字;
:n1,n2s/word1/word2/g:n1与n2为数字。在第n1与n2行之间寻找一个word1这个字符串,并将该字符串替换为word2。
:1.$s/word1/word2/g:从第一行到最后一行查找word1字符串,并将该字符串替换为word2;
:1,$s/word1/word2/gc:从第一行到最后一行查找word1字符串,并将该字符串替换为word2。且在替换前显示提示字符给用户确认是否需要替换;
删除、复制和粘贴;
x、X:在一行字当中,x为向后删除一个字符(相当于del),X为向前删除一个字符(相当于backspace);
nx:n为数字,连续向后删除n个字符;
dd:删除光标所在的那一整行;
ndd:n为数字,删除光标所在的向下n行;
d1G:删除光标所在到第一行的所有数据;
dG:删除从光标所在到最后一行的所有数据;
d$:删除从光标到该行的最后一个字符;
d0:0是数字;删除从光标所在处到该行的最前面一个字符;
yy:复制光标所在的一行;
nyy:n为数字,复制光标所在处的向下n行;
y1G:复制光标所在行到第一行的所有数据;
yG:复制光标所在行到最后一行的所有数据;
y0:复制光标所在的那个字符到该行行首的所有数据;
y$:复制光标所在的那个字符到该行行尾的所有数据;
p,P:p为将以复制的数据在光标的下一行粘贴,P为粘贴在光标的上一行;
J:将光标所在行与下一行的数据结合成一行;
c:重复删除多个数据,例如向下删除10行,[10c];
u:复原前一个操作;
ctrl+r:重做前一个操作;
.:小数点,意思是重复前一个操作的意思,如果你想要删除、重复粘贴等操作,按下小数点就好了;
第二部分:一般模式切换到编辑模式的可用的按钮;
i,I:进入插入模式:i从目前光标所在处插入,I为在目前所在行的第一个非空格符出开始插入;
a, A:进入插入模式:a为从目前光标所在处的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入;
o,O进入插入模式:这是英文o的大小写,o为在目前光标处的下一行插入新的一行;O为在目前光标所在处得上一行插入新的一行;
r,R:进入替换模式:r只会替换光标所在的那一个字符一次;R会一直替换光标所在处的字符,直到按下ESC键为止;
ESC键:推出编辑模式,回到一般模式;
第三部分:一般模式切换到命令行模式的可用的按钮说明;
:w:将编辑的数据写入到硬盘文件中;
:w!:若文件属性为只读时,强制写入给文件。只不过到底能不能写入,还是跟你对该文件的文件权限有关;
:q:离开vi;
:q!若修改过文件,又不想存储,使用!为强制离开不保存文件;!在vi中经常有强制的意思;
:wq:保存后离开,若为:wq!则为强制保存后离开;
ZZ:大写的Z。若文件没有改动,则不保存离开,若文件已经被改动过,则保存后离开;
:w[filename]:将编辑的数据保存成另一个文件,类似于零存文件;
:r[filename]:在编辑的数据中,读入另一个文件的数据,即将filename这个文件内容加到光标所在行后面;
:n1,n2 w[filename]将n1到n2的内容保存成filename这个文件;
:!command:暂时离开vi到命令行模式下执行command的显示结果;
:set nu:显示行号,设置之后,会在每一行的前缀先是该行的行号;
:set nonu:与set nu相反,为取消行号;
在vi中,数字是很有意义的。数字通常代表重复做几次的意思。也有可能是代表重复做几次的意思。也有可能是代表去到第几个什么的意思;
在使用vim编辑时,vim会在被编辑的文件的目录中在新建一个filename.swp的暂存文件,可以有恢复文件的功能;
块编辑;
多文件编辑:按键有:n编辑下一个文件;:N编辑上一个文件;:files列出目前这个vim的打开的所有文件;
将hosts中的四行复制到hosts1中:
通过vim hostshosts1命令来使用一个vim来打开两个文件;
在vim中先使用:files查看一下编辑的文件数据有什么;然后按下任意键回到vim一般模式;
在第一行输入4yy命令来复制四行;
在vim的环境下输入n回来到第二个编辑的文件,即hosts1中;
在hosts1下按G到最后一行,再输入p粘贴;
按下多次的u来还原原本的文件数据;
最终按下:q来离开vim的多文件编辑;
多窗口功能:在命令行模式下输入:sp[filename]即可多打开一个窗口,filename可有可无,如果想在新窗口启动另一个文件,就加上文件名;否则近输入:sp时,出现的则是同一个文件在两个窗口间;
多窗口情况下的按键功能:ctrl+w+下键或j键,光标移动到下方的窗口;ctrl+w+上键或k,光标移动到上方的窗口;ctrl+w+q其实就是:q结束离开;
重点回顾:
linux下面的配置文件多为文本文件,故使用vim即可进行设置编辑;
vim可视为程序编辑器,可用以编辑shell script、配置文件等,避免打错字;
vi为所有UNIX like的操作系统都会存在的编辑器,且执行速度快;
vi有三种模式,一般模式可变换到编辑与命令行模式,但编辑模式与命令行模式不能互换;
常用的按键有I,esc,:wq;
vi的界面大致可分为两部分:上半部的本文与最后一行的状态+命令行模式;
数字是有意义的,用来说明重复进行几次操作的意思,例如5yy为赋值5行的意思;
光标的移动中,大写的G经常使用,尤其是1G、G,表示移动到文章的头、尾功能;
vi的替换功能也很棒。:n1,n2s/old/new/g要特别注意学习起来;
小数点.为重复进行前一次操作,也是经常使用的按键功能;
进入编辑模式几乎只要记住I,o,R三个按钮即可,尤其是新增一行与替代的R;
vim会主动创建swap暂存文件,所以不要随意短线;
可以使用ctrl+v进行复制/粘贴/删除的行为;
使用:sp可以切割窗口;
vim的环境设置可以写入~/.vimrc文件中;
可以使用iconv进行文件语系编码的转换;
使用dos2UNIX及UNIX2dos可以变更文件每一行的行尾断行字符;
- 《鸟哥的linux私房菜》读书笔记
- linux鸟哥的私房菜读书笔记
- 《鸟哥的私房菜》--Linux读书笔记
- 鸟哥的Linux私房菜 读书笔记
- 鸟哥的linux私房菜读书笔记10
- 鸟哥的Linux私房菜 读书笔记一
- 鸟哥的Linux私房菜 读书笔记二
- 鸟哥的Linux私房菜(基础篇) 读书笔记
- 《鸟哥的Linux私房菜》读书笔记一
- 《鸟哥的Linux私房菜》读书笔记二
- 《鸟哥的Linux私房菜》读书笔记三
- 《鸟哥的Linux私房菜》读书笔记四
- 《鸟哥的Linux私房菜》读书笔记五
- 《鸟哥的Linux私房菜》读书笔记0
- 《鸟哥的Linux私房菜》读书笔记1
- 《鸟哥的Linux私房菜--基础学习篇》 读书笔记
- 《鸟哥的Linux私房菜--服务器架设篇》读书笔记
- 《鸟哥的Linux私房菜》读书笔记1
- 从AndroidStudio的启动参数开始,了解一下JVM的一些东西(内存使用,JIT等)
- Java面试题之HashMap与HashTable
- 安卓复习之旅—View的工作流程2
- IOS开发的OC基础和UI基础的简介
- SpringBoot学习——静态文件存放位置设置
- 鸟哥的linux私房菜读书笔记10
- python进阶13:创建类属性
- php写的给出一个年份和月份输出该月的天数
- 概率论——Wasserstein距离
- 排序算法(冒泡、快速)
- 66-进程组(实验二)
- 懒人框架“ButterKnife”的使用
- (转)斐波那契算法 各个开发语言排名
- extjs4常用的layout浅析。