vi编辑器使用
基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
以下是普通模式常用的几个命令:
i -- 切换到输入模式,在光标当前位置开始输入文本。
x -- 删除当前光标所在处的字符。
: -- 切换到底线命令模式,以在最底一行输入命令。
a -- 进入插入模式,在光标下一个位置开始输入文本。
o:在当前行的下方插入一个新行,并进入插入模式。
O -- 在当前行的上方插入一个新行,并进入插入模式。
dd -- 删除当前行。
yy -- 复制当前行。
p(小写) -- 粘贴剪贴板内容到光标下方。
P(大写)-- 粘贴剪贴板内容到光标上方。
u -- 撤销上一次操作。
Ctrl + r -- 重做上一次撤销的操作。
:w -- 保存文件。
:q -- 退出 Vim 编辑器。
:q! -- 强制退出Vim 编辑器,不保存修改。
若想要编辑文本,只需要启动 Vim,进入了命令模式,按下 i 切换到输入模式即可。
替换
语法1::s/搜索的内容/新内容 //用新内容替换光标所在行第一处被搜索到的内容
语法2::s/搜索的内容/新内容/g //用新内容替换光标所在行全部被搜索到的内容
语法3::%s/搜索的内容/新内容 //用新内容替换整个文件每一行第一处被搜索到的内容
语法4::%s/搜索的内容/新内容/g //用新内容替换整个文件全部被搜索到的内容
替换当前行第一个 old 为 new :s/old/new
替换当前行所有的 old 为 new :s/old/new/g
替换整个文件中所有的 old 为 new :%s/old/new/g
删除
x :删除光标所在位置的字符。
nx :删除光标所在位置开始往后的n个字符。
X :删除光标所在位置的前一个字符。
nX :删除光标所在位置的前n个字符。
dd :删除光标所在行。
ndd :删除光标所在行开始往下的n行。
粘贴
yy :复制光标所在行。
nyy:复制光标所在行开始往下的n行到缓冲区。
yw:将光标所在位置开始到字尾的字符复制到缓冲区。
nyw:将光标所在位置开始往后的n个字复制到缓冲区。
p:将已复制的内容在光标的下一行粘贴上。
np:将已复制的内容在光标的下一行粘贴n次。
粘贴保留格式
启用:set paste
禁用:set nopaste
剪切
dd:剪切光标所在行。
ndd:剪切光标所在行开始往下的n行。
p:将已剪切的内容在光标的下一行粘贴上。
np:将已剪切的内容在光标的下一行粘贴n次。
撤销
u:撤销。
Ctrl+r:撤销之前的撤销。
【大小写切换】
Shift+ ~:完成光标所在位置字符的大小写切换。
n~:完成光标所在位置开始往后的n个字符的大小写切换。
执行指令
!+指令:在不退出vim的情况下,可以在指令前面加上「!」就可以执行Linux的指令,例如查看目录、编译当前代码等。
vim配置
一个用户配置的是该用户的,不会影响其他用户!
每一个用户虽然用的是同一个vim程序,但是大家用的是不同的vim配置,因为每一个用户(root和普通用户都包括),在自己的家目录下,都有一个属于自己的配置文件。
全局:/etc/vimrc
个人:~/.vimrc
显示行号
语法1::set nu //显示文件每行的行号,显示行号是暂时的下次打开该文件不会再显示
加密
一、利用 vim/vi 加密:
优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了;
缺点:很明显让别人知道加密了,容易让别人把加密的文件破坏掉,包括内容破坏和删除;
vi编辑器相信大家都很熟悉了吧,vi里有一个命令是给文件加密的,举个例子吧:
1)首先在root主目录/root/下建立一个实验文件text.txt:
[root@www ~]# vim/vi text.txt
2)进到编辑模式,输入完内容后按ESC,然后输入:X(注意是大写的X),回车;
3) 这时系统提示让你输入密码,2次,如下所示:
输入密码: *******
请再输入一次: *******
4)保存后退出,现在这个文件已经加密了;
5)用cat或more查看文件内容,显示为乱码;用 vim/vi 重新编辑这个文件,会提示输入密码,如果输入的密码不正确,同样会显示为乱码!
注意:文件加密后,千万别忘了密码!
二、解密用vi加密的文件(前提是你知道加密的密码):
1)用 vim/vi 打开文件如text.txt,要输入正确的密码,然后在编辑时,将密码设置为空,方法是输入下面的命令:
:set key=
然后直接回车,保存文件后,文件已经解密了。
2)或者这样也行:
在正确打开文件后用 “:X” 指令,然后给一个空密码也可以。保存用“wq!”保存。
两种方法实际上效果是一样的。
使用 .vimrc 文件,能够快速的生成开头的注释信息
[root@clsn scripts]# cat ~/.vimrc
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2, "##############################################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Version: V1.0")
call setline(5, "# Author: clsn")
call setline(6, "# Organization: http://blog.znix.top")
call setline(7, "# Created Time : ".strftime("%F %T"))
call setline(8, "# Description:")
call setline(9, "##############################################################")
call setline(10, "")
endif
endfunc