版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/81952776
<https://blog.csdn.net/qq_21439395/article/details/81952776>
交流QQ: 824203453
vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。
只有命令,没有菜单。
《大碗》编辑器版
周围的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什么插件呀、语法高亮呀、拼写检查呀,能给它开的都给它开着,就是一个字:酷!你说这么牛X的一东西,怎么着学会也得小半年吧。半年!?入门都远着呢!能学会移动光标就不错了,你还别说耗不起,就这还是左右移动!!!
Vi 工作模式
命令模式(一般模式)
插入模式
编辑模式(底行模式,命令行模式)
vi filename 进入 命令模式 , 输入:wq保存并退出命令模式
命令模式下输入i a o / I A O 进入插入模式 ,esc键退出
命令模式下输入:进入编辑模式,回车回到命令模式
输入R 进入替换模式(REPLACE)
在vi里面怎么查命令呢:(eg:查找shutdown命令)
格式为:
:!which shutdown
------------------------------
vi 模式下高亮的增加与取出
增加高亮:
命令模式下,输入 shift+# ,当前光标所在字符显示高亮
去除高亮:
命令模式下输入:
: set nohlsearch 即可取消高亮
显示高亮的命令:
set hlsearch
-----------------------------------------------------------------
VI编辑文件时无权限保存的解决方法(用户具有sudo权限)
一般的解决方法是关闭文件重新以sudo权限打开编辑。
在当前文件中操作的办法:
1,输入命令:%! sudo tee % > /dev/null
2,按提示输入sudo权限密码
3,输入“L"(Load File)
4,输入:q命令退出
关于“%! sudo tee % > /dev/null”这条命令的说明如下:
% #VI/VIM编辑的文件内容
! #管道
sudo #以root权限操作
tee #将标准输入(即通过管道过来的当前编辑的文件内容)输出到标准输出,同时写入到指定的文件中(即VI/VIM当前编辑的文件)
% #VI/VIM编辑的文件
> /dev/null #将标准输出重定向到/dev/null(不输出显示)
---------------------------------------------------------------------
应用实例:
导入文件 : r文件名
在vi中执行命令 :!命令 eg: :r !date 当前文件中导入时间
导入命令 :r!命令 或者: r ! 命令 就是说r和!和命令之间可以连在一起,也可以分开写。但是不能使用ll这种命令,必须要使用ls
-l 这种全写才行
vi里面怎么查命令??:!which cp
vi里面怎么导入命令的结果?:r !which cp :r! echo $JAVA_HOME
定义快捷键 注:尖角号不是按6出来的,而是按ctrl+v
:map 快捷键 触发命令
eg: :map ^P I#<ESC> 用大写的I进入行首,添加#再退回到命令模式 即创建了一个快速注释的快捷键 ctrl+p
:map ^E [email protected] 快捷插入邮箱地址
:map ^B 0x 把行首的第一个字符去掉,即去掉注释 设置完之后ctrl+B生效
连续行注释:
:n1,n2s/^/#/g 在n1行到n2行 行首加#号,^号表示行首
:n1,n2s/^#//g 把n1行到n2行 行首的#号去掉
:n1,n2s/^/\/\//g 有转义字符,在n1行到n2行 行首加//
替换
:ab samlee [email protected] 输入samlee时,显示的是后面的邮箱
取消可以使用命令 :unab samlee 取消定义快捷键也使用这种方式。
注意:
这些修改都是在当前vi命令下有效,为了扩大有效果的范围
可以在用户宿主目录下的.vimrc文件里修改 /home/usernam/.vimrc /root/.vimrc
默认文件是空的,可以不写冒号。
eg: set nu 设置行号 保存后,用vi命令打开的所有文件都有行号
vi命令下,可使用 /"内容” 来进行查找
-------------------------------------------------------------------
插入命令
命令
作用
a
在光标后附加文本
A
在本行行末附加文本
i
在光标前插入文本
I
在本行开始插入文本
o
在光标下插入新行
O
在光标上插入新行
保存和退出命令
命令
作用
:w
保存修改
:w new_filename
另存为指定文件
:w >> a.txt
内容追加到a.txt文件中
:wq
保存修改并退出
shift+zz(ZZ)
快捷键,保存修改并退出
:q!
不保存修改退出
:wq!
保存修改并退出(文件所有者
可忽略文件的只读属性)
:e!
恢复到最初状态
注意: !强制保存只有文件所有者和root用户才能成功操作。
定位命令
命令
作用
命令
作用
h 方向左键
左移一个字符
M
移至当前屏幕中间行
j 方向下键
下移一行
L
移至当前屏幕下端(当前屏幕最后一行)
k 方向上键
上移一行
:set nu
设置行号
l 方向右键
右移一个字符
:set nonu
取消行号
$
移至行尾
gg
G
到第一行
到最后一行
0
移至行首(是零 不是O)
nG
到第n行
H
移至屏幕上端(当前第一行)
:n
到第n行
使用h j k i 这几个方向键时,默认都是步长为1的,但是如果前面加上数字,可以按指定步长移动。eg: 3k 上移3行。
在当前行移动命令:
fx
往右移动到x 字符上 你可以输入;来重复前一个f命令.
Fx
往左移动到x 字符上
tx
往右移动到x 字符前
Tx
往左移动到x 字符后
; 分号
配合 f 和 t 使用,重复一次
, 逗号
配合 f 和 t 使用,反方向重复一次
w
将光标向前移动一个词.
b
将光标向后移动一个词.
^
将光标移动到当前行的第一个字符. (译注: 第一个字符可能不是行首, 比如行首有space, tab等不可见符号, 0会把光标停在这些符号之前,
而^会把光jk标停在这些符号之后的第一个可见字符.)
)
将光标移动到下一个句子. (写电子邮件或者文本文档的时候很有用.)
(
将光标移动到上一个句子.
使用关键字自动完成(补全)
输入一个字串的前几个字母 然后按 <C-N> (按住Ctrl然后按N>)或者<C-P>.
如果vim没有选择你需要的字串,
继续按<C-N>或<C-P> (或者上下箭头键也可以)(貌似N是从前往后[从上到下]匹配,而P是从后往前匹配)
-- vim会遍历所有和你输入的前几个字母匹配的字串.
eg:
删除命令
命令
作用
x
删除光标所在处字符
nx
删除光标所在处后n个字符
dd
删除光标所在行,ndd删除n行
dG
删除光标所在行到末尾的内容
D
删除从光标所在处到行尾
:n1,n2d
删除指定范围的行(eg :1,3d 删除了123这三行)
复制和剪切命令
命令
作用
yy、Y
复制当前行
nyy、nY
复制当前行以下n行
dd
剪切当前行
ndd
剪切当前行以下n行
p、P
粘贴在当前光标所在行下 或行上
替换和取消命令
命令
作用
r
取代光标所在处字符
R
从光标所在处开始替换字
符,按Esc结束
u
undo,取消上一步操作
ctrl+r
redo,返回到undo之前
搜索和替换命令
命令
作用
/string
向后搜索指定字符串 搜索时忽略大小写 :set ic
?string
向前搜索指定字符串
n
搜索字符串的下一个出现位置,与搜索顺序相同
N
搜索字符串的上一个出现位置,与搜索顺序相反
:%s/old/new/g
全文替换指定字符串
:n1,n2s/old/new/g
在一定范围内替换指定字符串
% 指全文,s 指开始,g 指全局替换
起始行,终止行s/要替换的字符串/替换的新的字符串/g c 询问确认
eg: :%s/ftp/yang/g 全局替换,把ftp替换为yang
eg: :41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换
eg: :41,44/yang/lee/g 同上,不询问,直接替换
eg: :%s/\/root/\/ROOT/g 把/root替换为/ROOT
eg: :%s#/bin/bash#/bin/ksh/g 把/bin/bash全部替换为/bin/ksh
使用替换命令来添加删除注释
:% s/^/#/g 来在全部内容的行首添加 # 号注释
:1,10 s/^/#/g 在1~10 行首添加 # 号注释
多剪切板操作
可用0-9 或 a-z 表示剪切板序号
shift ' a y(多行用ny) 复制当前光标所在行到剪切板a中
shift ' a p 粘贴剪切板a中的内容
:reg 查看所有剪切板的内容
可视化模式:
V(shift+v) 可视行模式,选择多行操作
v 可视字符模式
ctrl+v 可视块模式(列模式),操作列
所有常用的光标移动键都可以在可视模式使用,
比如vw会进入字符选中模式并且选中光标之后的1个词.
Vjj将会进入行选中模式并且选中当前行及之后的两行.
I或者O进入插入模式。 小写的不行
常用快捷键
Shift+ zz
保存退出,与“:wq”作用相同
v
进入字符可视模式
V 或 Shift + v
进入行可视模式
Ctrl + v
进入块可视模式
版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/81952776
<https://blog.csdn.net/qq_21439395/article/details/81952776>
交流QQ: 824203453
热门工具 换一换