1、vim 全屏编辑器
1.1 打开文件
- vim /path/to/somefile
- vim +# :打开文件,并定位于第#行
- vim +:打开文件,定位至最后一行
- vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
1.2 关闭文件
1.2.1 末行模式:
- :q 退出 没有动过文件
- :wq 保存并退出 动过了,不后悔
- :q! 不保存并退出 动过了,后悔了
- :w 保存
- :w! 强行保存
- :x 等价于:wq
1.2.2 编辑模式
- ZZ: 保存并退出(不需要冒号)
1.3 三种模式
- 编辑模式:按键具有编辑文本功能:默认打开进入编辑模式
- 输入模式:按键本身意义
- 末行模式:接受用户命令输入
1.3.1 编辑模式 -> 输入模式
- i: 在当前光标所在字符的前面,转为输入模式;
- a: 在当前光标所在字符的后面,转为输入模式;
- o: 在当前光标所在行的下方,新建一行,并转为输入模式;
- O:在当前光标所在行的上方,新建一行,并转为输入模式;
- I:在当前光标所在行的行首,转换为输入模式
- A:在当前光标所在行的行尾,转换为输入模式
1.3.2 输入模式 -> 编辑模式
- ESC
1.3.3 编辑模式 -> 末行模式
- :(冒号)
1.3.4 末行模式 -> 编辑模式
- ESC ESC
1.3.5 输入模式 -> 编辑模式 -> 末行模式
不能直接从输入模式到末行模式;
1.4 编辑模式
1.4.1 移动光标
字符
- h: 左;j: 下;k: 上;l: 右
单词
- w: 移至下一个单词的词首
- e: 跳至当前或下一个单词的词尾
- b: 跳至当前或前一个单词的词首
行内
- 0: 绝对行首
- ^: 行首的第一个非空白字符
- $: 绝对行尾
行间
- G:文章末尾
- 3G:第3行
- gg:文章开头
翻屏
- Ctrl + f 向下翻屛 forward
- Ctrl + b 向上翻屛 back
1.4.2 删除/替换单个字符
- x:删除光标位置字符
- 3x:删除光标开始3个字符
- r:替换光标位置字符
1.4.3 删除命令 : d
- dd:剪切光标所在行
- 3dd:剪切从光标所在行开始向下的3行内容
- dw:剪切光标所在单词
- 3dw:剪切光标所在单词开始向后的3个单词
1.4.4 复制粘贴&剪切
- yy:复制光标所在一整行
- 3yy:复制光标所在行开始向下的3行内容
- yw:复制光标所在单词
- yw:复制光标所在单词开始向后的3个单词
- p:粘贴刚复制的内容,向下一行粘贴
- P:粘贴刚复制的内容,向上一行粘贴
1.4.5 撤销&重做
- u:撤销
- ctrl+r:重做 撤销的操作
- .:重复上一步的操作
1.5 末行模式 shift + :
- set nu:设置行号
- set nonu:取消行号
- set readonly:在当前vim窗口设置该文件为只读
- set noreadonly:取消只读
1.5.1 查找
- /word:查找word单词在文档中第一次出现的位置,光标定位到单词首字符
- n:向下查找单词
- N:向上查找单词
- :/word:查找word单词在文档中第一次出现的位置,光标定位到单词所在行首字符
- :! ls -al /usr/local/ 临时跳出vim,执行命令
1.5.2 查找并替换
s/str1/str2/gi
- /:临近s命令的第一个字符为边界字符,也可以为以下几个:/,@,#,%
- g:一行内全部替换
- i:忽略大小写
范围
- n:行号
- .:当前光标行
- +n:偏移n行
- $:末尾行,$-3
- %:全文
- :.,$s/after/before/ 从当前行(.)到末尾行($)查找after并替换为before,如一行内有多个after,只替换第一个
- :%s/after/before/gi 全文中将所有的after替换为before
1.5.3 其他
删除所有内容
光标在首行
:.,$d
dG
删除从第一行到倒数第三行内容,保留最后2行
:1,$-2d
复制3到9行,再按p粘贴
:3,9y