简介
Vim是Linux下常用的文本编辑器和程序开发工具。
Vim打开文件方式:
#vim file,打开指定的文件
#vim +数字 file,打开指定的文件,并且将光标移到指定行
#vim +/关键字 file,打开指定文件,并且高亮显示关键字
#vim file1 file2 ...,打开多个指定文件
Vim键盘图镇楼
常用模式
命令(普通)模式
在该模式下不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、删除行、黏贴等),打开文件后默认进入该模式。
光标移动
- 光标移到行首:shift + 6 或 ^(T字母上面的6,不要按小键盘的6)
- 光标移到行尾:shift + 4 或 $(R字母的左上角的4,不是小键盘的4)
- 光标移到首行:gg
- 光标移到尾行:G
- 向上翻屏:ctrl + b 或 PgUp
- 向下翻屏:ctrl + f 或 PgDown
- 快速将光标移动到指定的行:数字G 或者输入英文“:”,其后输入行数数字,按下回车
- 以当前光标为准向上/向下移动n行:数字↑,数字↓
- 以当前光标为准向左/向右移动n字符:数字←,数字→
复制粘贴
- 复制光标所在行:yy
- 以光标所在行为准(包含当前行),向下复制指定的行数:数字yy
- 粘贴:p(复制行会另起一行粘贴,复制字符串会从光标开始粘贴)
剪切/删除
- 剪切/删除光标所在行:dd
- 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行:数字dd
- 剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移:D
撤销/取消撤销
- 撤销:u(undo的意思)或者输入:u (不属于命令模式)
- 取消撤销:ctrl + r
缩进:
- 缩进:两个大于号'>>'
- 回缩:两个小于号'<<'
输入(编辑)模式
在该模式下可以对文件的内容进行编辑
以下的命令都会让vim从命令模式切换到编辑模式,但命令执行后的字符插入位置有所不同。
重点进入方式:i(insert)、a(after)、A、o。
退出方式:按下esc键
底线命令(末行)模式
可以在末行输入命令对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)
- 进入方式:由命令模式进入,按下“:”或者“/(表示向下查找)”或者“?(表示向上查找)”即可进入
- 退出方式:
a. 按下esc
b. 连按2次esc键
c. 删除末行全部输入字符
d. 命令回车执行完毕 - 保存操作:
输入:“:w” 保存文件
输入:“:w 路径” 另存为 - 退出
输入:“:q” 退出文件
输入:“:x” 在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出 - 保存并退出
输入:“:wq” 保存并且退出 - 强制 (!)
输入:“:q!” 表示强制退出,刚才做的修改操作不做保存 - 搜索/查找
输入:“/关键词” 或者“?关键词”
在搜索结果中切换上/下一个结果:N/n
如果需要取消高亮,则需要输入:“:nohl”【no highlight】 - 替换
- :s/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容
- :s/搜索的关键词/新的内容/g 替换光标所在行的全部符合条件的内容
- :%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容
- :%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容
%表示整个文件 g表示全局(global)
- 切换文件
- 如果需要指定切换文件的名称,则可以输入:“:open 已经打开的文件名”
- 查看当前已经打开的文件名称:“:files”
image
在%a的位置有2种显示可能:
%a:a=active,表示当前正在打开的文件;
#:表示上一个打开的文件 - 可以通过其他命令来切换上一个文件/下一个文件
输入:“:bn”切换到下一个文件(back next)
输入:“:bp”切换到上一个文件(back prev)
可视化模式
- 用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
- 用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
- 用 ctrl-V 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。
常用的(可视模式)命令有:
x或d 剪切(即删除,同时所选的文本进入剪贴板)
y 复制
方向键选中
>缩进或者<回缩
模式切换
image配置
Vim配置有三种情况:
- 在文件打开的时候在末行模式下输入的配置(临时的)
- 个人配置文件(~/.vimrc,如果没有可以自行新建)
- 全局配置文件(vim自带,/etc/vimrc)
注:个人配置优先于全局配置
常用配置
- 显示行号:set nu或set number
- 不显示行号:set nonu或set nonumber
- 设置tab符长度为2个空格:set tabstop=2
- 设置换行自动缩进长度为2个空格:set shiftwidth=2
- 突出显示当前行:set cursorline
- 显示括号匹配:set showmatch
- 语法高亮:syntax on
异常退出
什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出:
解决办法:将交换文件(在编程过程中产生的临时文件)删除掉即可,根据提示按D或者d即可删除交换文件,或者用删除命令rm强制删除交换文件 image
网友评论