学习-vim编辑器
2019-04-08
谈及文本,自然有编辑和处理两种操作
https://www.cnblogs.com/shiyanlou/archive/2017/09/05/7478346.html
正则表达式中: ^表示匹配字符串的开始位置
$表示匹配字符串的结尾位置
命令前加数字表示重复的次数
加字母表示使用的缓冲区名称
英文句号“.”表示触发上一个操作
vi 与 vim
vi 作为编辑器,通行于Linux世界,是完全相同的;一些接口会主动调用 vi
vim 在vi 的基础上,添加了“程序员”功能,例如:语法分析并颜色标志、正则表达式搜索、多文件编辑、块处理等等
按照功能分类:
1.编辑文本 1.1编辑模式(输出即所得)
2.命令处理 2.1一般模式(输出即命令) 2.2命令行模式(输出触发命令)
一般模式 :移动光标、删除字符/行、复制粘贴
编辑模式 :编辑文本 i/o/a/r/I/O/A/R进入;esc退出;insert插入字符/o
命令行模式:冒号/问号/斜杠触发,功能多样
1一般模式 NORMAL 一个<tab>在前面表示重要/两个<tab>在前面表示不重要
1.1移动光标
hjkl 左下右上
ctrl+b 等价于page down (屏幕向后一页)
ctrl+f 等价于page up (屏幕向后一页)
n<space> 等价于按下n 个<space>键(光标右移n个字符)
n<enter> 等价于按下n个<enter> 键(光标下移n个字符)结合上个操作可以移动到指定行列
home 移动到该行最前端,列数为0处
end 移动到该行最后端
w 跳转到下个字的开头
e 跳转到下个字的结尾
H/M/L移动到屏幕所示的最上方行的第一字符/中间行的第一字符/最下行的第一字符
gg 移动到文件的第一行
G 移动到文件最后一行
nG 移动到文件第n行
1.2查找与替换
/word 向下查找字符串word
?word 向上查找字符串word
n 重复前一个查找动作(N大写后查找方向相反)
:n1,n2s/word1/word2/g n1和n2是数字,表示查找区间为n1行到n2行之间,查找word1替换为word2;s(string) g(global)
($替换n2,表示最后一行)(gc替换g,表示每次替换前需要确认confirm)
1.3删除、复制、粘贴
x 等价于delete(X大写删除方向:向前)(nx 连续x操作,删除多个)
dd 剪切光标所在行(ndd 删除光标及其下面的共n行)
dG 剪切光标所在行至最后一行
d1G 剪切光标所在行至第一行
d$ 剪切光标所在处,至该行最后一个字符
d0 剪切光标所在处,至该行第一一个字符 等价于 d^
dw 剪切一个单词
yy 复制光标所在行
nyy 复制光标所在及其向下共n行
yG 复制光标所在行,至最后一行
y1G 复制光标所在行,至第一行
y$ 复制光标所在字符至行尾
y0 复制光标所在字符至行首 等价于 y^
p 粘贴复制的数据至光标位置的下一行(P大写,粘贴至上一行)
u 恢复上一个操作 undo
ctrl+r重复上一个操作 repeat(与u 操作搭配使用)
. 重复前一个操作
2.编辑模式
2.1进入编辑模式说明
i insert 从光标处插入(大写I 从目前所在行第一个非空格符处开始插入)
o 在下方插入新行(大写O 在上方插入新行)
a add 从光标处下一个字符插入(大写A 从光标所在行最后一个字符处开始插入)
r replace 取代光标处字符一次(大写R 取代字符一直到按下esc 键)
esc 回归一般模式
3.命令行模式
:w 保存编辑内容(:w! 强制写入,当然受权限限制)
:q 离开编辑器(:q! 不保存强制离开)
:wq 保存并离开
:x 同上
ZZ 若文件无改动,不保存离开;若存在改动,则保存后离开
:w filename 编辑的数据保存另一个文件filename(类似于另存)
:r filename 编辑的数据,添加文件的filename的内容(添加文件从光标所在行的后面)
:n1,n2 w filename 保存的内容为n1,n2行
:!command 暂时离开vi到命令行模式下执行command的显示结果/例如 :! ls /home 即可在vi中查看 /home下以ls输出的文件信息
:set nu 显示行号
:set nonu 取消显示行号
3.vim 的缓存文件、恢复与开启时的警告
编辑文件时有时会遭遇崩溃,同目录下会有名为 .filename.swp 的文件
再次编辑文件 vim filename
可能出现: 1:可能其他人会程序在使用该文件
2:前一个vim 环境下,未知原因导致 vim 中断(crashed)
有六个命令选项:
1.Open Read-Only:只读打开
2.Edit anyway:正常打开文件,不会载入暂存盘的内容
3.Recover:加载暂存盘的内容,暂存文件需要手动删除
4.Delete it:暂存档无用,开启文件前将其删除
5.Quit:离开vim
6.Abort:忽略编辑行为//感觉与quit类似
快选择
v 字符选择,将光标经过的地方反白选择
V 行选择,光标经过的行反白选择
ctrl+v 块选择,
y 反白的地方复制
d 反白的地方删除
多文件编辑
复制一文件中的一段到另一个文件,而vim 不能够在关闭时,把这一段保留。或者其他方法复制
:n 编辑下一个文件
:N 编辑上一个文件
:file 列出该vim编辑的所有文件
多窗口功能
有两个需要同时查看的文件
:sp filename 开启新窗口,若有filename,表示新窗口打开新文件;否则打开同一文件(同步显示)
ctrl+w j 先同时按下ctrl和w,放开,按下j
ctrl+w ↓ 光标移动到下一个窗口
ctrl+w k
ctrl+w ↑ 光标移动到上一个窗口
vim 环境设定与记录 (~/.vimrc, ~/.viminfo)
vim会主动的将你曾经做过的行为登记下来,记录动作的文件就是: ~/.viminfo,不想用这个功能,就直接删除~/.viminfo
vim的预设环境(重要如下)
整体vim的设定值一般是置在/etc/vimrc这个文件里面,不建议大家来修改他。
可以在自己的家目录里面建立个.vimrc文件,在这里面写入自己的内容就能实现了。
:set all "显示目前所有的环境参数设定值
:set hlsearch "高亮度反白(高亮度搜寻) high light search
:set nohlsearch "取消高亮度反白(高亮度搜寻) no high light search
:set backspace=2 "在编辑的时候可随时用退格键删除 (0、1的时候,只针对刚输入的字符有效)
:set autoindent "自动缩排 Automatic indentation
:set noautoindent "取消自动缩排
:set ruler "可显示最后一行的状态
:set showmode "左下角那一行的状态
:set nu "显示行号
:set nonu "取消行号
:set bg=dark "显示不同的底色色调 background 背景
:syntax on "进行语法检验,颜色显示 syntax 语法
:syntax off "关闭语法检验