VIM
基于模式的文本编辑工具
命令模式 command mode
进入vim后默认在命令模式
- x 剪切光标处的字符
-
x 多除剪切
- xp 交换位置
- ~ 转换大小写
- r 替换
- R 进入替换模式,esc退出
- d 删除
- dd 删整行
- D 删整行
dd 从光标处开始向下删好几行 - cc 删除当前行并进入替换模式
- /<查找的内容> 查找
- u 撤销
- ctrl+r 恢复撤销
- U 一次全部撤销
插入编辑模式 edit mode
在命令模式输入以下字母,进入插入模式 INSERT
- i 在当前位置编辑
- I 在当前位置的行首编辑
- a 在当前位置的后一个字符开始编辑
- A 在当前位置的行尾开始编辑
- o 在当前位置的下起一行开始编辑
- O 在当前位置的上起一行开始编辑
输入esc退出编辑模式,返回到命令模式
文本加颜色
1.进入插入模式
2.按 Ctrl+v+[ 三个键,会显示^[
3.在[后输入颜色信息,如[32mhello[[0m
4.!wq保存退出并cat
[00:57:29 root@C8-3-55 ~]#vim hellow.color
^[[1;32mGreenHello ## 手动输入^[
^[[1;32mGreenHello ## 使用ctrl+v+[输入^[
^[[1;32mGreemHello ^[ ## 使用ctrl+v+[ 前后两次输入^[
^[[1;32mGreemHello ^[[0m ## 使用ctrl+v+[ 输入^[ 后用[0m恢复
[01:01:40 root@C8-3-55 ~]#cat hellow.color
^[[1;32mGreenHello ## 手动输入^[
GreenHello ## 使用ctrl+v+[输入^[
GreemHello ??用ctrl+v+[ 前后两次输入^[
GreemHello ## 使用ctrl+v+[ 输入^[ 后用[0m恢复
我们发现,手动输入的^[ 并没有效果。
如果需要给文字添加颜色,必须使用ctrl+v+[输入^[
扩展命令模式 extended command mode
常用操作命令
在命令模式输入:进入扩展命令模式
- : 直接回车,返回命令模式
- :wq 保存退出vim
- :q!不保存退出vim
- :w
:w后面跟文件名,将正在编辑的文件另存为 - :r
:r后面跟文件名,读入已存在的文件 - :!
:!后面跟命令,可以在vim下执行命令 - :r!
:r!后面跟命令,可以在光标处插入执行命令的结果
地址定界
-
#为数字,表示具体第#行
-
,# #为数字,表示从#行开始到#行结束
-
,+# #为数字,表示从#行开始,往后加上#行,例如2,+3表示2到5行
- . 表示当前行
- $ 表示最后一行
- .,$-# 表示当前行到倒数第#+1行,$最后行往前查#行
- % 表示全文,相当于1,$,从第一行到最后一行
地址定界后可以跟相应的操作命令
- d 删除
- y 复制 粘贴用p贴在选定行下方,P贴在选定行上方
- w
将选定内容另存为指定文件 - r
在指定位置插入指定文件内容
查找替换
格式
s/要查找的内容/替换成的内容/修饰符(可选)
也可以使用其他分隔符
s#要查找的内容#替换成的内容#修饰符(可选)
修饰符
- i 忽略大小写
- g 全局全部替换
- gc 全局替换,每次替换前询问
vim工作特性
加行号
临时加行号
- 显示:set nu
- 取消:set nonu
永久保存
修改vim的配置文件
- /etc/vimrc 全局变量
- ~/.vimrc 个人用户变量
在个人目录中新建./vimrc文件
插入 set nu
自动缩进
- 启用 set ai
- 取消 set noai
复制保留格式
- 启用 set paste
- 取消 set nopaste
显示不可见字符
有的时候多余的空格或制表符会影响程序的执行,显示不可见字符可以很明显的找出问题
- 启用 set list
- 取消 nolist
高亮搜索
- 启用 set hlsearch
- 取消 set nohl
语法高亮
- 启用 syntax on
- 取消 syntax off
table替换成4个空格
- 启用 set ts=4
set all
:set all
--- 选项 ---
aleph=224 hlsearch shiftwidth=8
noarabic noicon noshortname
arabicshape iconstring= showbreak=
noallowrevins noignorecase showcmd
noaltkeymap imactivatefunc= noshowfulltag
ambiwidth=single noimcmdline noshowmatch
noautochdir noimdisable showmode
noautoindent iminsert=0 showtabline=1
noautoread imsearch=-1 sidescroll=0
noautowrite imstatusfunc= sidescrolloff=0
noautowriteall includeexpr= signcolumn=auto
background=light incsearch nosmartcase
nobackup indentexpr= nosmartindent
backupcopy=auto noinfercase nosmarttab
backupext=~ noinsertmode softtabstop=0
backupskip=/tmp/* isprint=@,161-255 nospell
balloondelay=600 joinspaces spellfile=
noballoonevalterm key= spelllang=en
balloonexpr= keymap= spellsuggest=best
belloff= keymodel= nosplitbelow
可视化模式
-
v 面向字符型,按字符可以选择多行
-
V 面向整行,整行整行的选
-
ctrl+v 块模式,可以选一个矩形的范围