Linux VIM文本编辑器
vim概述
Linux提供了一系列功能强大的编辑器,如vi和ASCIItext,Unicode 是linux系统的第一个全屏幕交互式编辑器。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。vim有3种工作模式,分别是命令行模式、插入模式、底行模式。
命令行模式: 最初进入的一般模式,该模式下可以移动光标进行浏览,整行删除,但无法编辑文字。
插入模式: 只有在该模式下,用户才能进行文字的编辑输入,用户可以使用[ESC]键回到命令行模式。
底行模式: 该模式下,光标位于屏幕底行,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。
vim的创建
# vim [options] [file ..]
+#:打开文件后,直接让光标处于第#行的行首。(#表示注释行)
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首。
vim的保存
w: //保存文件
w flie: //保存至flie文件
vim的退出
q : //退出编辑器,如果文件已修改请使用下面的命令
q!: //退出编辑器,且不保存
wq: //退出编辑器,且保存文件
ZZ: //保存并退出
x: //保存并退出
vim模式转换:
编辑模式 --> 命令行模式 ESC
命令行模式--> 编辑模式 shift+i
编辑模式--> 末行模式 shift+:
末行模式--> 编辑模式 ESC
vim插入模式中文本的插入
要输入内容,还需要进入插入模式。进入插入模式除了使用快捷键i之外,还可以使用以下快捷键
i:insert,在光标所在处输入
a: 进入插入模式并将光标放在当前光标之后
o:在当前光标所在的行的后面插入一个新行,进入插入模式并将光标放置在新行。
I:在光标所在行的行首输入
A:进入插入模式并将光标放在当前光标所在的行尾
O:在光标所在处的上方打开一个新行
vim的编辑命令:
查找替换的实现:
在Vim编辑器中,实现简单查找功能是“/”,从当前位置开始向下查找,其格式如下,在命令模式中输入:/pattern
如果当前查找到的字符串不是用户需要查找的字符串,可以使用以下快捷键:
n:跳转到下一个字符串
N:跳转到上一个字符串。
在Vim编辑器中,使用命令/是从当前位置开始向下查找,还可以使用命令?执行反向查找,即从当前位置开始向上查找。基本格式为:?pattern
i:忽略大小写;
g:全局替换,意味着一行中如果匹配到多次,则均替换
可把分隔符替换为其它非常用字符:
s@@@ s###
要让Vim编辑器查找时忽略字符串的大小写,可以使用以下命令:
:set ignorecase
关闭忽略大小写功能:
:set noignorecase
高亮显示查找结果,在命令模式中执行:
:set hlsearch
关闭高亮显示查找结果:
:set nohlsearch
字符编辑:
x:删除光标所在处的字符
#x:删除光标所在处起始的#个字符
xp:交换光标所在处的字符与其后面的字符的位置
替换命令:
r:替换光标所在处的字符
删除命令:
d:删除命令,可结合光标跳转字符,实现范围删除;
d$:删除当前光标到行尾的所有字符
d^:删除当前光标到行首的所有字符
dw:删除当前光标处的单词,包括词尾空格
de:删除当前光标处的单词
dd:删除光标所在处的行;删除当前光标所在行。
#dd:删除光标所处的行起始的共#行
J:将当前光标所在行和下一行合并(相当于删除行尾的换行符)
复制和粘贴
Vim命令模式提供了几个复制粘贴的快捷键。
yy: 复制光标所在的行到缓冲区
nyy:复制n行到缓冲区
y^: 复制当前光标所在的位置到行首的内容到缓冲区
y$: 复制当前光标所在的位置到行尾的内容到缓冲区
使用了以上快捷键执行复制操作以后,只要将光标移动到需要粘贴的位置,按下p键即可粘贴复制的文本。(若按下P则将缓冲区内容粘贴到当前光标之前)
vim光标跳转
字符间跳转
h:左
j:下
k:上
l:右
#COMMAND:跳转由#指定的个数的字符;
单词间跳转
w:下一个单词的词首;
e:当前或后一个单词的词尾;
b:当前或前一个单词的词首;
#COMMAND:跳转由#指定的个数的单词;
行首行尾跳转
^:跳转至行首的第一个非空白字符;
0:跳转至行首;
$:跳转至行尾;
行间跳转
#G: 跳转至由#指定的行;
1G, gg: 第一行;
G: 最后一行;
句间跳转)和(
段间跳转}和{
vim翻屏操作:
Ctrl+f:向文件尾翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
Enter:按行向后翻
末行模式下 地址定界:
:start_pos[,end_pos]
#:特定的第#行,例如5即第5行;
.:当前行;
$:最后一行;
#,#:指定行范围,左侧为起始行,右侧为结束行;
#,+#:指定行范围,左侧为超始行绝对编号,右侧为相对左侧行号的偏移量;例如:3,+7
.,$-1
1,$
%:全文
分割窗口:
将Vim编辑器分割成上下两个窗口
:split
将Vim编辑器分割成左右两个窗口
:vsplit
分割新窗口并打开空白文本
:new
分割窗口并打开新文件
:new+文件名
关闭窗口
(1)如果要关闭光标所在的窗口(如果光标不在需要关闭的窗口中,使用快捷键Ctrl+W),可以在当前窗口的命令模式中使用命令:close
(2)如果要关闭当前窗口外的其他窗口,可以在当前窗口的命令模式中使用命令only
――控制窗口大小
(1)要控制分割窗口的大小,可以再分割窗口时加上窗口大小参数。例如分割一个只有6行的新窗口“:6split”、“6vsplit”、“6new”...
(2)如果将当前光标所在的窗口放大,可以使用快捷键Ctrl+W++
(3)如果要缩小窗口,可以使用快捷键Ctrl+W+ -
从众多窗口中退出
qall:关闭所有保存过的窗口,可速记为quit all
wall:保存所有修改过的窗口,可速记为write all
wqall:保存并退出所有窗口,可速记为write quit all
qall!:不保存强制退出所有窗口,可速记为quit all!
本文出自 “Jet'aime” 博客,谢绝转载!