linux vim/vi 编辑器
简介
- vim/vi 编辑器是linux下常用的文本编辑器,可以编辑、创建任何格式的文件
- vim对vi的全部功能完全兼容,可以看作vi的升级版,vim有色彩,可以在windows等其他平台
- 两者都有三种模式,命令模式(不能编辑,输入被视为命令)、插入模式(编辑文本)、底行模式(配置环境、文件操作、调用)
- vim多了个可视模式, 可视模式中的操作有点像拿鼠标进行操作
- vi的命令均能在vim上执行。本文以vim为例子
安装vim的命令
sudo apt-get install vim
vim的基本使用命令
vim ~/txt/aaa.txt //如果该目录下有aaa.txt则打开文件,没有则创建文件并打开
模式切换
进入vim默认处于命令模式
- 命令模式----> 插入模式
- 点击i,a,o,I,A,O 都可从命令模式切换到插入模式,但是每个的作用不同
i:在当前光标所在字符的前面,转为输入模式;
a:在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转为输入模式;
A:在当前光标所在行的行尾,转为输入模式;
O:在当前光标所在行的上方,新建一行,并转为输入模式;
按ESC,即可切换为命令模式
按 :(英文符号) 即可进入底行模式
完成底行命令后,自动返回命令模式
按 ESC,ESC 按两次返回命令模式
- 底行模式与插入模式之间不可直接切换
- 命令模式-----> 可视模式
按v,V,ctrl + v进入 按ESC退出
底行模式
在命令模式下,按 :进入底行模式
带!表示强制操作 q为退出,w为保存
:q 退出;
:q! 不保存强制退出;
:w 保存;
:w! 强行保存;
:wq 保存退出
:wq! 强制保存并退出
:r /a/bb.txt :填充到当前文件所在光标的后面
n,m s/old/new/g //用new替换从n到m行里所有的old
%s/old/new/g //用new替换当前文件里所有的old
%s/abc/123/g 把全文的abc替换成123
1,10s/abc/123/g 把1-10行的abc替换成123
s/old/new//用new替换行中首次出现的old
s/old/new/g //用new替换行中所有的old
- 行号
:set nu //显示行号
:set number //显示行号
:set nonu //取消行号
- 语法
:syntax on //开启语法高亮
:syntax off //关闭语法高亮
- 分屏
:vsp xxx.x //开启分屏
:ctrl+w //关闭分屏
设置仅仅本次打开有效,若需要永久有效要修改配置文件
. 表示当前行;
$ 最后一行;
# 第#行;
+# 向下的#行
命令模式
移动光标
- 按字符移动
h: 左
l: 右
j: 下
k: 上
#h: 移动#个字符
- 按单词移动
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
#w: 移动#个单词
- 按行移动
本行内:
0: 绝对行首;
^: 行首的第一个非空白字符;
$: 绝对行尾
行间移动
#G:跳转至第#行;
gg: 第一行;
G:最后一行
n+ 向下跳n行
n- 向上跳n行
H 当前屏幕第一行
M 当前屏幕中间
L 当前屏幕最后一行
{ 移动到上一个代码块
} 移动到下一个代码块
复制粘贴
复制
yy 复制当前行
nyy 复制当前行以下的n行
粘贴
p 粘贴在光标后
P(大写) 粘贴在光标前
删除 替换 搜索
x: 删除光标所在处的单个字符(不跨行)
#x: 删除光标所在处及向后的共#个字符;(不跨行)
d$或D:从当前光标处删除至行尾;(不跨行)
d^:从当前光标处删除至行首;(不跨行)
dd: 删除当前光标所在行;(跨行)
#dd: 删除包括当前光标所在行在内的#行;(跨行)
dd相当于剪切操作,如果你dd之后按p或者P可以进行粘贴。(跨行)
r:替换单个字符(按r后按一个字符,将原本光标下的字符替换为新输入的字符)
R:替换多个字符(相当于重复按r,直至你退出到正常模式(按ESC退出))
/cs //向光标下搜索cs字符串
?csi //向光标上搜索csi字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作
撤销
u:撤消前一次的编辑操作;
#u:直接撤消最近#次编辑操作;
ctrl+r 反撤销(撤销u操作)
快捷键
Ctrl+f 向下翻一屏; Ctrl+b 向上翻一屏; Ctrl+d 向下翻半屏; Ctrl+u 向上翻半屏
插入模式
写入文本
修改配置文件
vim ~/.vimrc:修改当前用户的vim配置文件
sudo vim /etc/vimrc:修改所有用户的vim配置文件
|