vi 常用命令

linux vi commnon commands

categorycommandmeaning
associated files~/.vimrcexample:
<ConfigScript>
cat << EOF > /root/.vimrc
set noexpandtab noautoindent tabstop=4
EOF
FILENAME.swp如果打开FILENAME文件意外终止(<Ctrl>z)
可删除同名
FILENAME.swp即可
openvim FILENAME打开或新建FILENAME文件,并将光标置于第一行首
vim +N FILENAME打开FILENAME文件,并将光标置于第N行首
vim + FILENAME打开FILENAME文件,并将光标置于最后一行首
vim +/KeyWord FILENAME打开FILENAME文件,并将光标置于第一个与KeyWord匹配的位置
vim -c COMMAND FILENAME在打开FILENAME文件前,先执行指定的命令COMMAND
vim -r FILENAME恢复在上次发生崩溃的FILENAME文件
vim -R FILENAME以只读的方式打开文件,但可以强制保存
vim -M FILENAME以只读的方式打开文件,不可以强制保存
vim -y <Number> FILENAME将编辑窗口的大小设为Number
vim FILENAME1 [FILENAME2]…打开多个文件。<Ctrl>ww 文件间切换
vim -o FILENAME1 [FILENAME2]水平分割打开多个文件
vim -O FILENAME1 [FILENAME2]垂直分割打开多个文件
diff FILENAME1 [FILENAME2]…文件比较
vimdiff FILENAME1 [FILENAME2]…以vi方式打开,高亮显示不同的部分
:e重新加载当前文件
:e FILENAME关闭当前文件,并开启新文件。若未保存,会警告
:e!放弃当前修改,重新加载当前文件
:e! FILENAME放弃当前文件,并开启新文件
:e + FILENAME开启新文件,并从文件尾开始编辑
:e + <Number> FILENAME开启新文件,并从第Number行开始编辑
:enew编译一个未命名的新文档。(<Ctrl>W n)
:e#回到刚才编辑的文件
<Ctrl>^
:f显示文档名,是否修改,和光标位置
<Ctrl>g
:f FILENAME改变编辑的文件名,这时再保存相当于另存为
:gf打开以光标所在字符串为文件名的文件
multifile:n切换下一个文件编辑
:N切换上一个文件编辑
:files查看已打开的文件
:sp [FILENAME]打开新文件,并与当前上下分屏显示(<Ctrl>w 切换光标位置)
:vsp [FILENAME]打开新文件,并与当前左右分屏显示(<Ctrl>w 切换光标位置)
mode<ESC>退出编辑模式,回到一般模式
:shell开启一个新的子shellexit退出
<Ctrl><v>进入可视块模式,选中需要注释的行
1. 插入:按<Shift><i>进入编辑模式,输入#,结束<Esc>
2. 删除:选中内容,按x或者d键删除。
3. 替换:选中需要替换的内容,按下r键,然后输入替换后的内容
<Shift>v进入可视行模式,选中整行内容
1. 复制:选中行内容后按y键及可复制
2. 删除:选中行内容后按d键删除
<Shift>V进入可视模式
:! [COMMAND]暂时到命令行模式下执行COMMAND的显示结果,
例如
[:! ls /home]即列出/home目录
 :se[t]show all options that differ from their default value.
:set allshow all but terminal options.
:set nu行号
:set number
:set nonu
:set nonumber
:syn on 显示颜色帮助
:syn off
:syntax on
:syntax off
:set hlsearch高亮显示
:nohl
:set nohlserach
:set nobackup~xxx.xxx 自动备份
:set backup
:set ruler右下角状态兰
:set noruler
:set show mode左下角状态栏是否显示"INSERT"
:set noshow mode
:set autoindent缩排
:set ai
:set noai
:set shiftwidth=4反向制表符中的空格数目
:set showmatch输入)、}时,光标会暂时回到匹配的(、{
:set noshowmatch
:set tabstop=4制表停止位tab缩进的字符数目
:set bg=dark底色色调(dark or light)
:set wrap折行
:set nowrap
:set wrapscan循环搜索
:set nowrapscan
:set ciC编程时用的缩进格式
:set cindent
:set si
:set smartindent
:set autoread设置当文件变化时,自动读取新文件
:set history=<Number>设置保存命令的行数
:set cursorline当前行显示横线
:set nocursorline
:set guifont=consolas:h14设置字体为 consolas,字号为14
:set ff=unixff(fileformat),切换为unix格式,每行以 "\n" 结尾
:set ff=dos切换为windows格式,每行以 "\r\n" 结尾
:set encoding=utf-8显示文本时的编码格式
:set fileencoding=utf-8写入文件时的编码格式
:set list制表符显示^I,结尾显示$
:set nolist
:set paste粘贴模式
:set nopaste
move cursorb左移一个字至字首
B
w右移一个字至字首
W
e右移一个字至字尾
E
(句首
)句尾
{段首
}段尾
h向左移动一个字符
<BackSpace>
<Number><BackSpace>向左Number个字符
l向右移动一个字符
<Space>
<Number><Space>向右Number个字符
-向上一行
k
<Ctrl><P>
<Number>-向上Number
<Number>k
+向下一行
j
<Ctrl><N>
<Enter>
<Number>+向下Number
<Number>j
0到行首
^
<Home>
$到行尾
<End>
<Number>$Number行尾
<Number><End>
H光标移动到屏幕最上方所在行的行首
M屏幕中央所在行的行首
L最下方所在行的行首
G最后一行
<Number>GNumber指定行
1G第一行
gg
:<Number>跳到Number指定行,如[:88],跳到第88
<Number><Enter>光标向下移动Number指定行数
<Ctrl><F>PageDown 下翻页
<Ctrl><B>PageUp 上翻页
<Ctrl><D>向下移动半页
<Ctrl><U>向上移动半页
<Number>z将第Number行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部
search & replace/<SearchWord>从光标所在位置向下搜索 n下一个 N上一个
?<SearchWord>
:%          s/<OldWord>/<NewWord>/g全文搜索替换
:N1,N2  s/<OldWord>/<NewWord>/g数字N1行与数字N2行之间进行替换
:N          s/<OldWord>/<NewWord>/g只在N行替换
:N1,N2 s/<OldWord>/<NewWord>/gc数字N1行与数字N2行之间询问是否替换
:1,20 s/^#//120之间的行开头去掉#
:1,20 s/^#/120之间的行开头加上#
:1,3 s/p1/p2/g将第13行中所有p1均用p2替代
:g /p1/s//p2/g将文件中所有p1均用p2替换
:g /^\s*$/d删除全文中的空行(^代表开头 \s 代表空格 *通配符 $ 代表结尾)
deleted删除
x从光标所在处向后删除一个字符
X从光标所在处向前删除一个字符
<Number>x向后删除Number个字符
<Number>X向前删除Number个字符
dG删除光标所在行处到最后一行
d1G删除光标所在行处到第一行的所有
d$删除光标所在处到行尾
d0删除光标所在处到行首
dd删除光标所在行
<Number>dd删除Number
4dd删除当前光标所在行以下的3
<Number>dw删除光标处开始及其后的Number-1个字
<Number>dW
copyy复制
yy复制光标所在行
<Number>yy复制Number
y1G复制光标所在行处到第一行
yG复制光标所在行处到最后一行
y0复制光标所在处到行首
y$复制光标所在处到行尾
pastep从光标所在行下一行粘贴
P从光标所在行上一行粘贴
undou撤销
selectv字符选择
V行选择
<Ctrl>V区块选择
inserti光标前插入
I光标所在行行首插入
a光标后插入
A光标所在行行尾插入
o光标所在行下一行插入
O光标所在行上一行插入
relpacer替换光标所在处的字符
R光标所在处开始向后替换
modify<Number>cw修改指定数目的字
<Number>CW
<Number>CC修改指定数目的行
read:r FILENAME在当前光标处,插入另一个文件FILENAME
:5r FILENAME插入FILENAME文件至当前文件的第五行下面
save & quit:w保存
:w!强制写入,但对该文件的权限有关
:q[uit]退出
:q!强制退出
:x保存后退出
:wq保存后退出
:wq!强制保存退出
ZZ若文件没有变动,则不保存离开;
若文件已经被更改过,则保存后退出。相当于
wq
:w FILENAME另存一个文件FILENAME
:saveas FILENAME
:N1,N2 w FILENAME[:1,3 w file.txt],将1行到3行的内容保存成file.txt

reference link:
https://www.cnblogs.com/xiaolangabc/p/11283736.html
https://blog.csdn.net/weixin_45284484/article/details/95941403
https://blog.csdn.net/lgxzzz/article/details/124134846
https://www.jianshu.com/p/69c8b5eba986

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值