Linux下vi命令

VI命令

i 输入内容,插入
I 行首插入
a 光标下一个字符处插入
A 行尾插入
o 下一行插入
O 上一行插入
esc 返回标准模式
:set nu 显示行号
:set nonu 不显示行号
:set tabstop=2 改变制表为为2个字符
:set autoindent 设置自动缩进

当你在一个文件中set nu,set tabstop,set autoindent编辑完这个文件之后,再打开新的文件编辑的时候,你若要显示行号等还要重新设定。若不想这么麻烦,可以在家目录中添加.vimrc为vi设置全局配置。操作如下:

vim ~.vimrc  #新建一个名为.vimrc的文件
set nu  #设置显示行号
set tabstop=2  #设置tab键缩进为2个字符
set autoindent  #设置自动换行
:x  #保存当前文件,退出

:w 保存
:w! 强制保存
w [filename] 另存为(例如:w a.txt)
:q 退出
:q! 不保存,强制退出
:! Command 临时执行命令(例如: !pwd)
:wq:x命令一样,是保存之后退出
nG n为数字,移动到第n行,如2G移动到第2行

跳转到第n行还可以:0或者:1光标移动到开头,:3光标移动到第3行第一个字符,:5跳转到第5行第一个字符。要想跳转到最后一行第一个字符,可以在一般模式下按G,或者按:之后输入一个比较大(比当前文件的内容行数大)的数字回车就可以,比如:999(一般文件行数很少有超过999行的,如果超过就用更大的数 )。

G 移动到文件最后一行
:/word 向下搜索word的字符串
:?word 向上搜索word的字符串

n1,n2s/word1/word2/g 从第n1行到第n2行搜索word1替换为word2,g是全局的意思
n1,$s/word1/word2/gc 与上相同,只是在替换的时候询问,c是确认的意思

dd 剪切当前行
ndd 剪切向下n行
yy 复制当前行
nyy 复制向下n行
p 粘贴到下一行
P 粘贴到上一行
u 撤销前一次操作
ctrl+r 重复前一个操作

:sp 新开一个窗口
:sp index.php 在新窗口中打开index.php文件
在多个窗口中切换的方法是Ctrl+w+上下方向键。按着Ctrl不松,按一下w键松开,再按上下键。


vi的3种模式:

text mode 按i,I,a,A,o,O进入
normal mode 按esc切换
command mode normal mode下按:进入

normal mode :
h 光标左移
l 光标右移
j 下移
k 上移
delete 删除光标所在的字符 (删除相当于剪切)
i 进入编辑模式,在当前光标所在位置插入
a 进入编辑模式,在当前光标所在位置的下一个字符位置插入
A 【append】 进入编辑模式,在当前光标所在行的行尾插入
r 【replace】 替换,按下r之后再按一个字符,将光标所在位置的下一个字符替换为按下r之后按的字符,比如
在a的位置按下r再按b,就把a替换为b
u 【undo】撤销刚才的操作.类似windows中的ctrl+z
ctrl + r 【redo】与u相反,重做。类似于windows中的 ctrl+y
dd 删除当前1行
2dd 删除2行
5dd 删除5行
ggdG 把光标置于文件开头,再删除至文件末尾。相当于清空文档
v 【mark】标记选中,按下v,再按hjkl或者方向键,会选中文字,并以高亮显示。便于复制【y】,剪切【d or x】,替换【r,】等操作
yy 【复制1行】
5yy 【复制5行】
ctrl + v 垂直标记,垂直方向上标记多行
/ 向下查找
? 向上查找
/abc 搜索abc字符串,按n向下查找,按N向上查找
Shift+* 查找一个单词,按n光标直接跳到下一个相同的单词的位置
G 光标移动到文件末尾
gg 光标移动到文件开头
:1 光标到第1行
:5 光标到第5行行首
Shift+%,光标从当前{处跳到对应的}处
== 对齐
选中之后按1下=可以一次对齐多行
<< 将当前行向左移动一个 tab
>> 将当前行向右移动一个 tab
ctrl + w + v 水平方向上分为2屏,按ctrl + w 切换光标所在的窗口
ctrl + w + s 垂直方向上分为2屏

cmmand模式:
在normal模式下,输入:命令,即进入command模式
:q 退出
:q! 强制退出,不作任何改变
:wq 保存并退出
:wq! 强制保存并退出
:x 相当于 :wq 保存并退出
另外保存并退出还可以在normal模式下按 ZZ
:1 光标置于第1行
:10 光标置于第10行
:%s/aaa/bbb 把aaa字符全部替换为bbb
:%s/aaa/bbb/g 递归替换,
:set nu 显示当前文件的行号
:set nonu 不显示当前文件的行号
:nu 显示当前行的行号
:vsp 水平方向上分屏 相当于ctrl + w + v ,按ctrl + w 切换光标所在的窗口

vi编辑器的配置文件

修改之前先备份
sudo /etc/vim/vimrc /etc/vim/vimrc.original
sudo vi /etc/vim/vimrc

"设置tab为4个空格 "表示当前行被注释
set tabstop=4


如果这篇文章对你有帮助,不妨点个赞哦 (˙˘˙)ᓂ--♡

你可能感兴趣的:(Linux下vi命令)