- vim打开文件的几种方式
命令 | 作用 |
---|---|
vim +n filename | 打开文件,并定位到第n行 |
vim + filename | 打开文件,并定位到最后一行 |
vim +/pattern filename | 定位至第一次匹配到pattern的行的行首 |
按行或pattern,可以快速打开到配置文件错误的地方,或者日志中报错的地方。
如从监控系统,或者邮件收到报错信息时,直接根据时间定位到相应的日志位置
vim +/"2019-02-17 23:01:49.994" server.log
-
vim的三种模式
-
命令模式(command mode)
命令模式是Vim的默认操作模式,当使用vim命令打开一个文件时,默认进入的就是命令模式。不管用户处于何种模式,只要按下Esc键就可使进入命令行模式
-
编辑模式(input mode)
只有在vim编辑模式下,才能将键盘键入的内容输入到当前打开的文件中
-
尾行模式(last line mode)
尾行模式主要用于保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号(set nu)、寻找字符串(/target)等
在命令模式下,用户按冒号键(:)即可进入末行模式下,此时Vi会在显示窗口的最后一行显示一个”:“作为末行模式的提示符,等待用户输入命令
三种模式的切换如下图
-
-
命令模式下的常用命令
光标移动命令
上 下 左 右
用键盘上的方向键也可,看个人习惯,这种方式比较省时间
命令 作用 h 或 ← 左 j 或 ↓ 下 k 或 ↑ 上 g 或 → 右 行级移动
命令 作用 0 移动光标到当前行行首 $ 移动光标到当前行行尾 ^ 移动光标到当前行的第一个非空字符 nG 或 ngg 移动光标到当前文件的第n行 :n 移动光标到当前文件的第n行(同上) 文件首尾移动
| 命令 | 作用 |
| :------: | :--------------------------: |
| gg 或 :0 | 移动光标到当前文件的第一行 |
| G 或 : $ | 移动光标到当前文件的最后一行 |翻页
命令 作用 Ctrl + b xian Ctrl + f 向后滚动一页 Ctrl + u 向前滚动半页 Ctrl + g 向后滚动半页 文本编辑命令
插入
在命令模式下按以下按键可进入编辑模式,执行插入操作,具体包括:
令 作用 a 在当前光标所在字符的后面开始插入 A 在当前光标所在行的【行尾】开始插入 i 在当前光标所在字符的前面开始插入 I 在当前光标所在行的【行首】开始插入 o 从当前光标所在行的下一行处开始插入 O 从当前光标所在行的上一行处开始插入 s 删除当前光标所在的字符开始插入 S 删除当前光标所在的开始插入 删除
命令 作用 x 删除当前光标所在的字符 hift + x 或 X 删除当前光标所在字符的前一个字符 dd 删除或剪切光标所在的行 复制 粘贴
命令 作用 yw 复制从光标所在位置到当前【单词结束】部分的内容 yy 复制光标所在【行】的所有字符(包含换行符) p 将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【后】 hift + p 或 P 将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【前】 撤销 反撤销
命令 作用 u 撤销最近的一次操作 trl + r 恢复最近的一次操作() 查找命令
基本搜索
在Vim命令模式下,输入 / 或 ? 符号就进入了搜索模式,/ 用于正向往下搜索,? 用于反向往上搜索
命令 作用 n 查找下一个 hift + n 或 N 查找上一个 正则表达式搜索
为了更好的进行搜索,Vim支持正则表达式,最基本的正则表达式规则包括:
号 含义 ^ 表示一行的开头 $ 表示一行的结尾 . 表示任意一个字符 * 匹配0次或n次 如查找行首为test的行,命令模式下输入如下即可
/^test
-
尾行模式下的命令
命令 作用 :w 保存文件 :q 退出vim编辑,修改不生效 :w! 强制保存,在root用户下,只读文件也可保存 :q! 强制退出,所有改动不生效 :wq 保存并退出 :x 保存并退出 ZZ 等同于:wq :set nu 显示行号 :set nonu 不显示行号 :set readonly 设置只读