VIM编辑器介绍
VIM简介:
vi:Visual Interface,vi本身只是一个可视化接口,是一款遵循GPL协定的开源软件。体积很小,功能强大。
vim:VI improved,vi增强版。有语法着色。
和nano一样是全屏编辑器,也是的模式化编辑器。
vim的模式:
3种模式
- 编辑模式(命令模式)
- 输入模式
- 末行模式
可输入文件管理类的命令
打开vim默认是进入编辑模式。
模式转换
编辑-->输入:
i:在当前光标所在字符的前面,转为输入模式。
I:在当前光标所在行的行首,转换为输入模式
a:在当前光标所在字符的后面,转为输入模式。
A:在当前光标所在行的行尾,转换为输入模式
o:在当前光标所在行的下方,新建一行,转为输入模式。
O:在当前光标的上一行新建一行,转换为输入模式
输入-->编辑:
ESC键
编辑-->末行:
在编辑模式下输入":"即可
末行-->编辑:
ESC键,有时候需要连敲两下Esc键
常用命令:
- 打开文件
vim /path/to/file 打开一个文件
vim +n /path/to/file 打开一个文件,当前光标处于第N行
vim + /path/to/file 打开一个人间,光标处于最后一行
vim +/Pattern 打开文件,定位到第一次被Pattern定位的行
- 关闭文件
末行模式:
q:退出
w:保存
wq、x:保存并退出
q!:强制退出
w!:强行保存
编辑模式:ZZ:保存退出
- 移动光标(编辑模式)
- 逐字符移动:
h:左 j:下 k:上 l:右
联想记忆:j代表Japan,k代表Korea,韩国在日本的上方,日本在韩国的下方。
数字+上方的移动键:移动指定数字的字符 - 以单词为单位进行移动:
w:移动到下一 个单词的词首
e:跳到当前单词词尾或下一个单词词尾
b:跳到当前单词或前一个单词的词首
数字+上方的移动键:移动指定数字的单词 - 行内跳转:
0:行首(绝对行首)
^:行首(第一个非空白字符)
$:行尾 - 行间跳转:
数字+G:跳转至数字行
G:跳转至最后一行
末行模式:行号 + 回车
- 逐字符移动:
- 翻屏
Ctrl + f : 向下翻一屏
Ctrl + b : 向上翻一屏
Ctrl + d : 向下翻半屏
Ctrl + u : 向上翻半屏
- 删除
删除的内容会被放入缓冲区,是可以撤销的。最后一次删除的内容可以被粘贴。
- 删除单个字符:
x :删除光标所在处的单个字符
数字+x:删除光标所在处及向后的共N个字符 - 删除命令 d
d命令要跟跳转命令组合使用可以指定删除多少
数字+d+跳转符:
dw、de、db都比较常用 - dd:表示删除当前光标所在行
数字+dd:包括当前光标所在内的这么多行
末行模式:startADD, endADD
.:表示当前行
$:最后一行
+数字:向下的n行
- 删除单个字符:
- 粘贴
P: 如果删除的或复制的为整行,则粘贴至光标所在行的下方。如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
p: 如果删除或复制为整行,则粘贴至光标所在的上方,如果复制内容为非整行,则粘贴至光标所在的字符前面
- 复制
y:用法和d一样
- 修改
c:用户同d命令
- 替换
r:
R:替换模式
- 撤销
u:撤销前一次的编辑操作
数字+u:直接撤销n次编辑操作
ctrl+r:反撤销(还原操作)
- 重复前一次编辑操作
.:重复前一次编辑操作
- 可视化模式
v:按字符选取
V:按矩形块选取
- 查找
/Pattern:查找匹配字符,支持正则表达式
n:下一个
N:上一个
- 查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@string@gi
%:标示全文
练习:将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum
%s/ftp:\/\/instructor\.example\.com\/pub/http:\/\/172\.16\.0\.1\/yum/gi
文件内容如下(以供练习):
# repos on instructor for classroom use
# Main rhe15 server
[base]
name=Instructor Server Repository
baseurl=ftp://172.16.0.1/pub/Server
gpgcheck=0
# This one is needed for xen packages
[VT]
name=Instructor VT Repository
baseurl=ftp://172.16.0.1/pub/VT
gpgcheck=0
#This one is needed for clustering packages
[Cluster]
name=Instructor Cluster Repository
baseurl=ftp://172.16.0.1/pub/Cluster
gpgcheck=0
# This one is needed for cluster storage (GFS, iSCSI target, etc ...) packages
[ClusterStorage]
name=Instructor ClusterStorage Repository
baseurl=ftp://172.16.0.1/pub/ClusterStorage
gpgcheck=0
- 使用vim打开多个文件
vim FILE1 FILE2 FILE3
下面命令都是在末行模式下
netx:切换至下一个文件
prev:切换至前一个文件
last:切换至最后一个文件
first:切换至第一个文件
qa:退出全部文件
- 分屏显示一个文件
ctrl+w,s:水平拆分窗口
ctrl+w,v:垂直拆分窗口
在窗口间切换光标:
ctrl+w,方向键
qa:关闭所有窗口
- 分窗口编辑多个文件
vim -o:水平分割显示
vim -O:垂直分割显示
- 将当前文件中的部分内容另存为另一个文件
末行模式使用w命令
w:
ADDR1,ADDR2w /path/to/somewhere
- 将另外一个文件的内容填充在当前文件中
末行模式下
r /file
- 跟shell交互
末行模式下
!command
- 高级话题
-
- 显示或取消显示行号(只对当前vim进程有效)
set number
set nu 显示行号
set nonu 取消显示行号
- 显示忽略或区分字符大小写
set ignorecase
set ic
set noignorecase 不忽略大小写
set noic
- 自动缩进
set autoindent
set ai
set noai 取消自动缩进
set noautoindent - 查找到的文本高亮显示或取消
set hlsearch
set nohlsearch 取消高亮
- 语法着色
set syntax on 开启语法高亮
set syntax off 关闭语法高亮
- 显示或取消显示行号(只对当前vim进程有效)
- 配置文件
/etc/vimrc
~/.vimrc
- vim 辅导手册
vimtutor 每天照着练习一次,一周后你就可以成为vi高手啦。
刚才手贱,居然点了一下最下方的“舍弃”按钮。。。。我快哭死了。整理了好久的文档就这么没有了。不过还好我之前手贱点了草稿预览,居然在历史记录里边还能够打开草稿预览。谢天谢地,损失不是太多。建议csdn能够在点击“舍弃”的时候能给个提示,或者把舍弃的文章暂时先放进垃圾箱里。如果我没有打开过草稿预览的话,那我编辑2天的文章就彻彻底底灰飞烟灭了。特写下手贱的感受,以此念之。。。。