惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园 - YiYezc

Django + Vue 学习日志( PART03:Django 模板) Django + Vue 学习日志(08Python 闭包和装饰器) Django + Vue 学习日志(07Python对象构造) Django + Vue 学习日志(06Python 对象相关) Django + Vue 学习日志(05CBV) Django + Vue 学习日志(04HttpRequest) Django+Vue 学习日志(03模板查找) Django+Vue 学习日志(02视图实例) Django+Vue 学习日志 Python的if语句 Python元组 Python列表操作 Python列表管理 Python列表元素管理 Python字符串 Python变量 centos安装autossh bash相关 Linux的bash快捷键 Linux下光盘镜像生成和刻录 Linux文件系统备份dump Linux下文件压缩与打包 Linux挂载 Linux磁盘分区 Linux文件访问和日志 block、inode、superblock详解 Linux文件系统的详解 Linux的权限对于文件与目录的意义 命令与文件的查询 ctime, atime与mtime释疑
Vim程序编辑器
YiYezc · 2016-03-01 · via 博客园 - YiYezc

命令:vim 文档名 ,如果文件存在则打开文件,不存在则新建文件

刚用vim打开一个文件的时候,是命令模式,又叫作一般模式,一般是不能编辑文件的
在命令模式按i I a A o O,都会进入插入模式,在插入模式下按Esc则进入命令模式
i是从当前光标进入插入模式
I是从当前光标的本行进入插入模式
a当前光标的下一个字符进入插入模式
A从本行的结束进入插入模式
o在本行的下一行插入空白行并进入插入模式,光标移到该空白行的首段
O在本行的上一行插入空白行并进入插入模式,光标移到该空白行的首段

在命令模式下按u作用是撤销当前操作,Ctrl+r是前进


一.保存操作:
在插入模式下进行了一些操作,如果想保存这些操作,就要进入末行模式或者尾行模式
进入末行模式的方法是先退回到命令模式,即按Esc,再按 :进入末行模式
末行模式下可以保存.退出.替换.定位.改变参数等操作
在末行模式的:按w后回车是保存,按q回车退出vim
如果在插入模式下已经进行了一些操作,且没有保存,想直接退出,进入末行模式:q!可以不进行保存直接退出。
如果想保存并退出可以进入末行模式:wq
进入末行模式:set nu回车后可以发现文档的每一行增加了一个行号,此时增加的行号只是在内存中增加的,并没有写入到硬盘
如果不想显示这些行号,进入末行模式:set nonu回车即可
二.替换操作:
进入末行模式:s/rhce/RHCE/g 回车,则是把光标所在行的所有rhce换成RHCE,如果不加g,末行模式:s/rhce/RHCE/则只替换光标所在行第一个rhce
如果想指定行进行替换,末行模式:3,15s/rhce/RHCE/g,可以将该文档中第3至15行中的所有rhce换成RHCE
如果想从光标所在行开始进行替换,末行模式:.,15s/rhce/RHCE/g,可以将该文档中光标所在行至15行中的所有rhce换成RHCE,这里的.的意思就是代表了光标所在行
如果想从光标所在行开始至倒数第二行进行替换,末行模式:.,$-1s/rhce/RHCE/g,可以将该文档中光标所在行至15行中的所有rhce换成RHCE,这里的$的意思就是代表了最后一行,$-1自然就是倒数第二行的意思
如果想对整个文档进行替换,末行模式:1,$s/rhce/RHCE/g或者末行模式:%s/rhce/RHCE/g
如果想删除整个文档的某个关键字,末行模式:1,$s/rhce//g即可
在Linux的脚本中凡是以#开始的内容都是被注释掉了
如果想注释一个文档中的某些行,末行模式:1,20s/^/#/g,这里的^表示一个行的最开始,这样就是把光标所在行至最后一行的最前面加上#,即注释掉了
如果想取消某些行的注释,末行模式:1,20s/^#//g,这里在#前面加上^的原因是防止不是开头位置出现了#而造成了误删造作,指明了所删除的#都是在每一行的首端
三.定位
如果想定位到某一特定的行,末行模式:5回车,这里就是将光标定位到第五行的意思


在命令模式下按/也可以进入末行模式,可以进行查找操作,和man命令下的/差不多
进入查找后按n查找下一个关键字,N查找上一个关键字
如果查找关键字后关键字高亮显示,可以查找一个比较长的随意输入字符串,这样保证在文档中不会出现,这时候高亮就消失了

在命令模式下的一些快捷操作
定位:nG这里的n是行号数字,比如5G,不加任何数字直接G定位到最后一行,定位第一行1G,或者gg
复制行:yy复制光标所在行,nyy(n是数字),如3yy表示从光标所在行开始往下复制3行(包含当前行)
粘贴:p从光标所在行的下一行开始粘贴复制的内容
删除:dd剪切当前行,ndd(n是数字),如4dd表示从光标所在行开始往下删除3行(包含当前行),实际上这里的删除进行的是剪切
单个字符替换:光标移动到想替换的字符上,r然后输入想替换的内容(输入的内容只能是单个字符)就可以了
单个字符删除:x删除光标所在的字符,X相当于Backspace。
块选择:想复制某一块内容,先将光标移到想操作的地方,然后Ctrl+v,进入到visual block模式,移动(可向四个方向)光标,选择好块后,按y进行复制,最后P粘贴就完成操作了。

vim多文件操作
命令vim file1 file2 file3,可同时打开这三个文件,想查看自己打开了哪些文件,可以在末行模式:files回车查看,切换文件,可以末行模式:n/N/first/last等,分别是下一个文件/上一个文件/第一个文件/最后一个文件

vim分屏
如果一个文件用vim打开后发现内容很多,一页屏幕显示不下,可以在末行模式:sp回车,达到分屏的效果。光标切换到下一个屏,Ctrl+w+j,光标切换到上一个屏,Ctrl+w+k。

vim环境设置
如果希望每次vim打开文件都可以显示行号,工作目录切换到用户加目录,cd ~用户名,然后vim .vimrc,在里面加入内容set nu

vim使用注意事项
中文编码问题,在/etc/sysconfig/i18n里面的内容是设置系统的编码
DOS和Linux的断行字符,在Linux下创建的文档文件,在Windows下可能会不显示断行,可以使用命令:unix2dos -k 文档名,选项k是不改变文档的修改时间,unix2dos -k 文档名 新文档名,这个命令是将该文件复制一份并将复制后的文件转为Windows下可识别断行的文件。如果是Windows下的文件拷贝到Linux下,可用命令:dos2unix 文档名