vim(visual editor improved)
大小写指令互补,大写指令=小写指令+Shift
数字代表重复指令若干次
最好先sudo su;进入superuse模式(否则文件第二次打开将不能正常退出,没有修改权限 No write since last change (add ! to override))
当vim异常退出后,将不能打开文件,会出现“.try.txt.swp的文件已存在”的报错:删除缓存的swp文件:rm -rf .try.txt.swp
vim try.txt 新建或者打开原有文件
cat try.txt 显示文件内容 (concatenate)
(默认打开vim为命令行模式)
编辑模式——Esc——>命令行模式
命令行模式——i /a/o——>(insert)编辑模式
命令行模式——:——>底线命令模式
底线命令模式:
:wq保存退出(write quit) :q退出 :q!强制退出
:/word/正向搜索 :?word?反向搜索【可用regex】
:n1,n2s/word1/word2/g :在第 n1 与 n2 行之间寻找 word1 这个字符串,并将所有该字符串取代为 word2【不写n1,n2,默认为当前行。不写g,默认为只替换一次】
:1,$s/word1/word2/g:在第一行与最后一行间寻找并替换
:1,$s/word1/word2/gc:每次替换前confirm,请求用户确认
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 将 filename 的档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 行到 n2 行的内容储存成 filename 文件(.代表当前行,
.+5代表当前行往下第五行,$表示最后一行)
设置-->:set
+ nu显示行号 + nonu取消 (number)
+ autoindent自动缩进
+ tabstop=n 设置Tab字宽
+ ruler显示光标行列
+ ignorecase 忽略regex中大小写字母的区别
+ mk 保存选项
vim -On file1 file2... 终端中打开 file1 和 file2 ,垂直分屏
vim -on file1 file2... 打开 file1 和 file2 ,水平分屏
分屏:上下(:sp) 左右(:vsp)vertical split
(在新分屏中打开新文件->:e ./t.txt)edit
切换分屏:Ctrl+w+hjkl (window)
Ctrl+W+ = 让所有的屏都有一样的高度;
:tabnew (filename) 打开新标签页
命令行模式:
向左下上右移动(hjkl)(多行移动:数字+hjkl)
Ctrl+f/b: PageDown/PageUp
Ctrl+d/u: PageDown/PageUp(移动半页)
数字+空格:光标向右移动若干字符
数字+Enter:向下移动若干行
H 光标移动到屏幕的最上方那一行的第一个字符
M 光标移动到屏幕的中央那一行的第一个字符
L 光标移动到屏幕的最下方那一行的第一个字符
0(Home):移动到该行开头
$(End):移动到该行末尾
定位最末行:G;最初行:gg(1G)
定位到第20行:20+G(or 20gg or :20)
* 在文件内搜索光标停留的单词,并跳转到下一处;
# 在文件内搜索光标停留的单词,并跳转到上一处;
( 移动到 上一句 的开始; )移动到 下一句 的开始
{ 移动到 上一段 的开始; }移动到 下一段 的开始
g_ 到本行最后一个不是 blank 字符的位置。
fs 跳到下一个为s的字符。
3fa 在当前行查找第三个出现的 a。
t, 到逗号前的第一个字符
拷贝光标当前行: yy; 拷贝向下的5行:5yy (yank)
从光标下一行处粘贴:p (paste);上一行粘贴:P
剪切当前行:dd;剪切向下的5行:5dd (delete)
rc 用 c 替换光标所指向的当前字符;
nrc 用 c 替换光标所指向的前 n 个字符;
向右删除字符:x,向左:X (连续删除:数字+x)
(y1G)d1G:(复制)删除光标到文档开头 (yG)dG:(复制)删除光标到文档末尾
(y0)d0:(复制)删除光标到行首 (y$)d$:(复制)删除光标到行尾
J 删除本行的回车符,并和下一行合并junction
在光标下面查找word:/word 【输入n 就是转入下一处next,N表示返回上一处】
在光标上面查找word:?word
撤销动作【某一命令,某一行输入】:u (undo)
重复动作:Ctrl+r (redo)
终端中vimdiff a.txt b.txt (or vim -d a.txt b.txt)
或 底线命令:diffsplit a.txt b.txt 比较文件差异
vim -b [file]:打开二进制文件(binary) :%!xxd人性化显示