设为首页 收藏本站
查看: 388|回复: 0

[经验分享] VIM文本编辑器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-28 08:35:18 | 显示全部楼层 |阅读模式
一)、VI与VIM。
vim(IMproved)编辑器是vi(visual interface)编辑器的增强版,它是Linux系统编辑文本文件重要的工具之一,也是最基础的编辑工具。它可以执行输出、删除、查找、替换、块操作等众多文本操作。

基本操作二)、VIM基本操作。
1)、使用vim打开一个文件:
1
#vim [option]... [FILE]...




2)、直接输入VIM可查看当前版本及信息:
1
#vim



QQ截图20150528083520.png
#vim +# file:
打开文件时光标直接处于第#行行首。


三)、模式化编辑器:
1)、主要模式:
编辑模式(command mode):用vim打开文件时的默认模式,进行键盘操作,可以移动光标,复制、粘贴、删除等操作。
输入模式(Insert mode):对文件进行编辑和修改。
末行模式(last line mode):vim内置的命令行接口,执行vim的内置命令。

2)、模式转换:
编辑模式à输入模式:
i:在光标所在处的前方转换为输入模式。
I:光标移至行首切换为输入模式。
a:在光标所在的后方转换为输入模式。
A:光标移至行尾切换为输入模式。
o:在光标所在行的下方新建一个空行并转换为输入模式。
O:在光标所在行的上方新建一个空白行并转换为输入模式。
s:删除光标所在处字符,并进入插入模式。
S:删除光标所在的行,并进入插入模式

输入模式à编辑模式
ESC

编辑模式à末行模式
:

末行模式à编辑模式
ESC

输入à编辑à末行


四)、保存退出文件:
1)、在末行模式下:
q:退出文件。
q!:不保存退出。
w:写入。
w!:若文件为只读,强制写入。
wq:保存退出。
x:保存退出。
wq!:强制保存并退出。
w  newfilename:写入到一个新文件中。
e!:放弃文件修改,从上次保存的位置重新编辑。

2)、在编辑模式下:
ZZ:保存退出。

编辑模式
五)、光标移动:
1)、字符间移动:
k:上一行。
j:下一行。
h:左一字符。
l:右一字符。
#{h|j|k|l}:跳#个字符或行。

2)、单词间移动:
w:下一个单词词首。
e:当前单词或下一个单词词尾。
b:当前单词或前一个单词词首。
#{w|e|b}:跳#个单词。

3)、行内移动:
^:行首第一个非空白字符。
0::绝对行首。
$:绝对行尾。

4)、句子间移动:
):下一句句首。
(:上一句句首。

5)、段落间移动:
}:下一段段首。
{:下一段段首。

6)、行间移动:
G:跳转至最后一行。
#G: 跳转至第#行。
gg:跳转至首行。
H:跳转至屏幕顶行
#H:跳转至屏幕顶行下第#行。
M:跳转至屏幕的中间一行。
#L:跳转至屏幕底行上第#行。
#[Enter]:光标向下移动#行。

7)、翻屏:
Ctrl+f:向文件尾部翻一屏。
Ctrl+b:向文件首部翻一屏。
Ctrl+d:向文件尾部翻半屏。
Ctrl+u:向文件首部翻半屏。
Ctrl+y:向文件尾部翻一行。
Ctrl+e:向文件首部翻一行。


六)、编辑命令:
1)、删除:
x:删除光标所在处的字符。
X:删除光标所在处前一个字符。
#{x|X}:删除光标所在处{前|后}#个字符。

d:结合光标跳转字符使用,删除跳转范围内的字符。
d#{w|b|e}:删除单词。
d{$|0|^}:删除光标所在位置至行{首|尾}。
D|d$:删除光标所在位置至行尾。
d#G:删除光标所在位置至第#行。
dG:删除光标所在位置至最后一行。
#dd:从光标所在行开始删除#行。

注意:最后一次删除的内容会被保存至缓冲区。

2)、复制:
y:yank
结合光标跳转字符使用,复制跳转范围内的字符。
y#{w|b|e}:复制单词。
y{$|0|^}:复制光标至行{首|尾}。
#{Y|yy}:复制光标所在位置后#行。
yG:复制光标所位置到最后一行。
y#G:复制光标所位置到第#行。

3)、粘贴:
p:paste
粘贴的位置取决于最后一次删除或复制操作的级别。
行级别:
p:粘贴于当前行下方。
P:粘贴于当前行上方。

小于行级别:
p:粘贴于当前光标所在处的后方。
P:粘贴于当前光标所在处的前方。

4)、修改:
c:change
先删除,再转换为输入模式:
结合光标跳转字符使用,修改跳转范围内的字符。
c{w|b|e}:删除单词并转换为输入模式。
c{$|0|^}:删除光标位置至行{首|尾}并转换为输入模式。
C|c$:删除光标所在位置至行尾并转换为输入模式。
c#G:删除光标所在位置至第#行并转换为输入模式。
cG:删除光标所在位置至最后一行并转换为输入模式。
#cc:从光标所在行开始删除#行并转换为输入模式。

5)、撤消编辑:
u:undo
#u:撤消最近的#次操作,最多50次。

撤消此前的撤消操作:
Ctrl+r

重复前一条命令:
.

末行模式
七)、内容界定:
1)、 行间跳转:
.:当前行
#:第#行
$:最后一行
$-#:倒数第#行。

2)、内容界定和操作:
m,n:界定第m行至第n行。
.,#:当前光标所在行到第#行。
#,$:第#行至最后一行。
.,$:当前光标所在行到最后一行。
%|1,$:界定全文。

c,d,y等命令可以直接附加在地址范围后使用,对选定范围进行删除、复制等操作。

w /path/to/somefil:将选定范围内的内容保存至某文件中。
r /path/from/somefile:将指定的文件中的内容读取到指定位置。

八)、文本查找:
1)、字符查找:
用法同less命令:
/pattern:向下查找匹配的字符串。
?pattern:向上查找匹配的字符串。

n:重复前一个查找的操作。如果使用/进行查找,则n表示向下查找,如果使用?进行查找,则n表示向上查找。
N:与n相反,表示与前一个查找进行反向操作。

2)、文本替换:
s/查找模式/要替换成的内容/gic
查找模式:可以使用正则表达式。
要替换成的内容:不能使用模式,仅能使用引用。

g:global,全行替换;如果不使用g,查找的字符所在行中存在不止一个匹配项时,只替换第一个。
i:ignore case,不区分字符大小写。
c:替换前提示用户确认是否替换,常与g同时使用。

其他模式
九)、其他模式:
1)、可视化模式:
用于选取整块范围的模式。
在编辑模式下:
v:光标走过的字符。
V:光标走过的行。
Ctrl+v:以长方形的方式进行选择
c,d,y等命令可以直接使用,对选定范围进行删除、复制等操作。

2)、多文件模式:
可以同时打开多个文件,并在各个文件中进行切换。
1
#vim FILE1 FILE2...



在末行模式下:
n|next:下一个文件。
N|previous:上一个文件。
first:第一个文件。
last:最后一个文件。
wa|wall:保存所有文件。
qa|qall:退出所有文件。
wqa|wqall:保存并退出所有文件。

3)、多窗口模式:
多窗口编辑操作:
Ctrl+w, Arrow:窗口间切换。

单文件分割:
Ctrl+w,s:水平分割。
Ctrl+w,v:垂直分割。

多文件分割:
1
#vim -{o|O} FILE1 FILE2...



-o: 水平分割。
-O: 垂直分割。

属性和配置文件
十)、窗口属性定义:
1)、命令:
在末行模式下输入设置命令:
set:显示与系统默认值不同的设置参数,一般就是用户改动过的设置。
set all:显示目前所有环境参数设置值。
set nu|nonu :显示行号;默认关闭。
set ai|noai :自动缩进;设置了此选项后,换行时光标会自动对齐上面行的行首位置,而不会回到绝对行首;默认关闭。
set ic|noic :忽略大小写;设置此项后,在查找字符时会忽略大小,默认关闭。
set sm|nosm :显示括号;设置此选项后,光标移至括号时,自动高亮显示与之匹配的另一半括号;默认开启。
set hlsearch|nohlsearch:搜索高亮显示;搜索字符时,会自动高亮标识所有的匹配字符,此选项会默认开启,并且即使关闭了当前文件,再次打开其它文件时也会高亮标识之前的搜索结果。
syntax on|off :语法高亮显示控制;可以帮忙用户标识语法结构,查找语法错误。

2)、配置文件:
可将属性命令写在配置文件中设置vim默认属性,注释使用双引号。
        全局配置文件:/etc/vimrc
        用户配置文件:~/vimrc



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71315-1-1.html 上篇帖子: 工作中关于rpm的一个简单但头疼的问题 下篇帖子: 缺少动态连接库.so--cannot open shared object file: No such file or directory 编辑器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表