vim
- vi(visual editor) ,文本编辑工具,是linux必备工具之一,功能强大。学习曲线陡峭,学习难度大
- vim(visual editor iMprived),和vi使用方法一致,但功能强大。
- ~/.vimrc:vim配置文件
模式切换
- 命令模式----插入模式
- i :在光标所在处输入
- I:行首输入
- a:在光标后输入
- A:行尾输入
- o:在光标下添加新行
- O:在光标上添加新行
- 插入—ESC----命令
- 命令 — :—末行
末行命令
- w:写入
- wq:写入并退出
- q:退出
- q!:强制退出
- x:写入并退出
- X:加密
- r filename:读取文件内容到当前文件中
- w filename:将当前文件内容写入另一个文件
- !command:执行命令
- r!command:读取命令的输出
地址定界
- # :具体地几行
- #,#:从左侧#起始到右侧#终止
- #,+#:从左侧#起始加上右侧#的行数
- .:当前行
- $:最后一行
- ., $:当前行到最后一行
- %:全文
- /pattern/:冲当前行向下操作
- /pat1/,/pat2/:从第一次被pat1匹配到开始的行开始,到第一次被pat2匹配行结束
- #, /pat/:指定行开始,一直到第一个匹配patt结束
- /pat/,$:向下查找到第一次匹配pattern的行到整个文件的结尾的所有行
编辑命令
- d:删除
- y:复制
- w file:将范围内的行另存至指定文件中
- r file:在指定位置插入指定文件中的所有内容
查找并替代
s/要查找的内容/替换内容/修饰符
- i:忽略大小写
- g:全文
- gc:替换去询问
定制工作特性
-
行号
- set nu (number)
- set non (nonumber)
-
缩进
- set ai
- set noai
-
复制保留格式
- set paste
-
显示tab键和换行符
- set list
-
高亮搜索
- set hlsearch
-
语法高亮
- syntax on
- syntax off
-
文本果格式
- windows:set ff=dos fileformat
- linux:set ff=unix
-
设置文本宽度
- set textwidth=65(vim only)
- set wrapmargin=15
-
设置光标所在行的标识线
- set cursorline (set cul)
- set nocursorline
-
加密
- set key=password
- 禁止:set key=
命令模式
功能强大,输入指令并不在屏幕上显示,需要大量记忆。
-
退出vim
- ZZ:保存退出
- ZQ:不保存退出
-
字符间跳转
- h:左
- j:下
- k:上
- l:右
- # command:移动几个
-
单词间的跳动
- w:下一个单词的词首
- e:下一个单词的词尾
- b:当前或前一个单词的词首
-
当前页跳转
- H:页首
- M:页中间行
- L:当前页尾
- zt:将光标所在行变为首行
- zz:将光标所在行变为首中
- zb:将光标所在行变为首底
-
行首为跳到
- ^:跳到行的第一个字符
- 0:跳到行首
- $:行尾
-
行间移动
- #G:跳转至第#行
- G:最后一行
- 1G,gg:第一行
-
句间移动
- ):下一句 (:上一句
- }:下一段 {:上一段
-
翻屏操作
- ctrl + f:向文件尾部翻一屏
- ctrl + b:向文件首部翻一屏
- ctrl + d:向文件尾部翻半屏
- ctrl + u:向文件首部翻半屏
-
字符编辑
- x:删除光变处的字符
- #x:多个字符的删除
- p:粘贴
- ~:转换大小写
- J:删除当前行后的换行符
-
替换命令
- r:替换光标所在处的字符
- R:切换成替换(REPLACE)模式,按ESC回到命令模式
-
删除命令
- d:删除命令
- d$:删除行尾
- d^:非空行首
- d0:行首
- dw:下一个单词尾
- de:下一个单词首
- db:前一个单词首
- #dd:多行删除
- dd:剪切光标所在的行
- D:从当前光标位置一直到行尾
-
复制命令
- y:
- y$
- y^:
- y0
- yw
- ye
- yd
- #yy
- yy
- Y:复制整行
-
粘贴命令
- p:缓冲区为行则在光标下方,复制在光标后方
- P:缓冲区为行则在光标上方,复制在光标前方
-
改变命令
- c:删除后切换为输入
- c$
- c^
- c0
- cw
- ce
- cb
- cc:当前行
-
查找
- /PATTERN:当前光标到尾部
- ?PATTERN:当前光标到首部
- n:搜索同向查找
- N:搜索反向查找
-
撤销更改
- u:撤销最近的更改
- #u:撤销之前多次更改
- U:撤销光标落在这行后所有此行的更改
- ctrl+r:重做最后一次操作
- .:重复前一个操作
- #.:重复前一个操作#次
-
高级操作
- di":删除双引号之间的内容
- yi(:复制
- vi(:选中
- dtx:删除到x字符
- ytx:复制到x字符
可视化模式
- v:面向字符 VISUAL
- V:面向整行 VISUAL LIST
- ctrl+v:面向块
多文件模式
- :next:下一个
- :prev:前一个
- :first:第一个
- :last:最后一个
- :wall:保存所有
- :qall:不保存退出所有
- :wqall:保存退出所有
多窗口模式
vim -o|-O FILE1 FILE2 …
-
-o:水平或上下分割
-
-O:垂直或左右分割
-
ctrl + w 后下方向键
单个文件风格
ctrl+w,s:split:水平分割,上下
ctrl+w,v:垂直分割,左右
ctrl+w,q:关闭相邻的出口
ctrl+w,o:取消全部窗口
:wqall:退出
vim寄存器
有26个命名寄存器和一个无名寄存器。可以不同会话共享
- 3”tyy:将3行复制到t寄存器
- tp:粘贴t寄存器内容。
有10个数字寄存器,0存放最近复制的内容,1存放最近删除的内容,不能在不同会话共享。
标记和宏
- ma:将当前位置标记为a,26个字母均可做标记
- ‘a:跳转到标记的位置,实用的文档内标记方法,文档中跳跃编辑时有用
- qa:录制宏a,
- q:停止宏a
- @a:执行宏a
- @@:重复执行上次执行的宏
编辑二进制文件
%!xxd