Vim 文编编辑器
说明:Vim 是 Vi 的增强版,Ubuntu 默认安装了 Vi ,没有安装 Vim,但使用几乎一样。以下使用 Vim来介绍,最好使用 Vim,因为 Vi 有点难用
Vim 常用操作
vim 介绍
- vim 是一个功能强大的全屏幕文本编辑器
- 作用:建立、编辑、显示文本文件
- vim 没有菜单,只有命令
- vim 工作模式
- 进入
vi filename
,已有文件,则进入文件命令模式;没有,则创建文件,再进入文件命令模式 - 命令模式,
- 插入模式:使用
i\a\o
进入插入模式;使用esc
回到命令模式- i 光标前插入
- a 光标后插入
- o 换行插入
- 编辑模式:命令以回车结束\运行
- 插入模式:使用
- 退出 ,命令模式下输入命令
wq
退出并保存;q!
强制退出(如果:文件使用vi filename
创建,退出没有保存,则文件也不会存在);w
保存文件
- 进入
插入命令
-
在命令模式下输入插入命令
-
如表
命令 作用 a 光标后插入 A 光标所在行末尾插入 i 光标前插入 I 光标所在行首插入 o 光标下出入新行 O 光标上出入新行
-
定位命令
-
在命令模式下输入
-
如表
命令 作用 :set number / set nu 设置行号 :set nonumber / set nonu 取消行号 G / gg 到最后一行 / 到第一行 nG 到第几行 :n 到第几行 $ 移至行尾 0 移至行首
-
删除命令
-
在命令模式下输入
-
如表
命令 作用 x 删除光标所在处字符 nx 删除光标所在处后 n 个字符 dd 删除光标所在行,ndd 删除 n 行 dG 删除光标所在行及到文件末尾内容 D 删除光标所在处到行尾内容 :n_1,n_2d 删除指定范围的行
-
复制和剪切命令
-
在命令模式下输入
-
如表
命令 作用 yy 复制当前行 nyy 复制当前行一下的 n 行 dd 剪切当前行 ndd 剪切当前行一下 n 行 p / P 粘贴在当前光标行所在行下或行上
-
替换和取消命令
-
在命令模式输入
-
如表
命令 作用 r 取代光标所在字符 R 从光标所在处开始替换字符,按 esc 结束 u 取消上一步操作
-
搜索和搜索替换命令
-
在命令模式下输入
-
如表
命令 作用 /string 搜索指定字符串
搜索时忽略大小写 :set ic
键入 n 表示查看下一个搜索结果:%s/old/new/g 全文替换指定字符串(old)
注意转义字符\/
表示/
:n_1,n_2s/old/new/g 在 n_1 到 n_2 行内替换
注意转义字符\/
表示/
-
保存和退出命令
-
在命令模式下输入
-
表格
命令 作用 :w 保存修改 :w new_filename 另存为指定文件 :wq 保存修改并退出 ZZ 快捷键,保存修改并退出 :q! 不保存修改退出 :wq! 保存修改并退出(文件所有者及 root 可使用)
-
Vim 使用技巧
说明:一下设置可以写入用户目录下的 .vimrc
文件写入配置信息,使用 vim 设置永久有效
导入命令执行结果 :r !命令
- 介绍
- 将命令执行的结果写入,使用 vim 编辑器打开的文件
- 实例
- 使用
cat 文件1
,将 文件1导入 vim 打开的文件中r !cat 文件1
- 直接使用文件名
:r !文件1
,也可以导入文件1内容
- 导入当前时间
date
r !date
- 使用
在 vim 中查看命令执行结果 :!命令
-
介绍
- 不需要退出 vim 编辑器,直接使用
:!命令
查看执行结果
- 不需要退出 vim 编辑器,直接使用
-
实例
-
在 vim 编辑器下,使用
:!ls
ss@localcomputer:~/桌面/test$ vim a a abc 请按 ENTER 或其它命令继续
-
定义快捷键 :map 快捷键 触发命令
- 介绍
- 将一个或多个命令,使用一个快捷方式代替
- 实例
- 使用自定义快捷键注释代码
- 加注释:
:map ctrl+y I#<ESC>
使用ctrl+y
代替行首插入I
,插入 #,按 ESC 键退出插入模式 - 解除:
:map ctrl+t 0x<ESC>
使用ctrl+t
代替光标移至行首,使用x
删除光标所在处 #,按 ESC 键退出插入模式
- 加注释:
- 可是使用快捷键,输入邮箱等一些常用信息
- 插入邮箱:
:map ctrl+y iShenDeZ@163.com
使用ctrl+y
代替进入插入模式,插入邮箱地址
- 插入邮箱:
- 使用自定义快捷键注释代码
连续注释
- 介绍
- 就是多行一起注释,会使用正则表达式
- 实例
- 以 # 为注释符的多行注释
:n_1,n_2s/^/#/g
- 相反
:n_1,n_2s/^#//g
- 以 // 为注释符的多行注释
:n_1,n_2s/^/\/\//
- 相反
:n_1,n_2s/^\/\///g
,\
是转义字符
- 在行尾插入相同字符
- 在行尾插入 hello:
:%s/$/hello/g
- 在行尾插入 hello:
- 以 # 为注释符的多行注释
替换 ab 替代 原字符集
- 介绍
- 将一段常用字符集,使用简单的几个字符代替
- vim 插入时,空格 / 回车,会有显示
- 实例
- 邮箱使用特殊字符代替
-
:ab mail ShenDeZ@163.com
,vim 插入 mail 时,会自动转变成ShenDeZ@163.com
-
- 邮箱使用特殊字符代替
分屏
打开文件并且分屏
- 垂直分屏
- 命令
vim -o[n] file1 [file2……]
- n 表示分屏个数(可以省略)
- file 表示文件
- 一般使用
vim -o file1 file2
垂直创建或打开两个文件 - 如果写 n,但 n 与文件数相等,会创建无名文件
- 命令
- 水平分屏
- 命令
vim -O[n] file1 [file2……]
- 命令
Vim命令模式下分屏
说明:也可以新建文件
- 垂直分屏
- 命令
:split [file1]
- 写 file,将 file 与当前文件垂直分屏
- 不写 file,将当前文件垂直分开,同时分屏的文件同步
- 命令
:vs [file1]
- 只读,可还行
- 命令
- 水平分屏
- 命令
:vsplit [file1]
- 命令
:vs [file1]
- 命令
- 新建文件垂直分屏
- 命令
:new [file1]
- 写 file 会新建一个文件
- 不写 file 会新建一个无名文件
- 命令
移动光标
-
将光标移动到另一个屏幕中
-
如表格
光标方向 命令 上移 ctrl+w k
下移 ctrl+w j
左移 ctrl+w h
右移 ctrl+w l
移动到下一个 ctrl+w w
移动上一个 ctrl+w p
-
关闭分屏
说明:此处使用的命令是在文件名由修改的情况下使用
- 关闭除当期分屏的所有分屏
- 命令
:only
- 分屏有修改不可关闭
- 命令
- 关闭所有分屏
- 命令
:qa
- 同样分屏有修改不可关闭
- 命令
设置 vim 分屏
- 当前窗口与下一个对调(优先上下,其次左右)
- 命令
ctrl+w x
- 命令
- 所有窗口恢复均等
- 命令
ctrl+w =
- 命令