vim主要模式介绍
vim命令模式
vim插入模式
vim命令行模式
vim可视化模式
设置vim开发环境
vi这条命令的安装包(vim-minimal-7.4.160-2.el7.x86_64.rpm)
查看命令由哪个软件包安装
[root@apenglinux mnt]# rpm -qf which vi
vim-minimal-7.4.160-2.el7.x86_64
[root@apenglinux mnt]# rpm -qf which vim
vim-enhanced-7.4.160-2.el7.x86_64
vim 编辑器模式切换
命令模式、末行模式、编辑模式
命令模式:
字符操作
i 当前插入
I 行首插入
a 当前字符之后插入
A 行尾插入
esc 退出当前模式
o 下一行插入
O 上一行插入
x 向后删除一个字符
X 向前删除一个字符
u 撤销一步
h,j,k,l #光标向左,下,上,右
n+空格 #光标向右移动n个字符
n+回车 #光标向下移动n行
.:表示重复前一个操作
shift+j #合并光标所在行及下一行为一行
gggUG #将整个文件变为大写
ggguG #将整个文件变为小写
gUU #将光标所在的行变为大写
guu #将光标所在的行变为小写
gUw #将光标所在处单词变为大写
guw #将光标所在处单词变为小写
shift+v#选中光标所在处的行
**行操作**
home键或^ 行首
$或end键 行尾
dd 删除一行 Ndd 删除N行
yy复制一行 Nyy复制N行
p 将复制行粘贴到光标处的下一行
gg 定位到行首
G 定位到行尾
NG或Ngg 定位到第N行
词操作
dw 删除一个单词,删除时要将光标移动到这个词的行首。另外,如果光标不在行首,则删除光标之后的字母
yw 复制一个词
块的操作
D d+$ 删除至行尾
d+^ 删除到行首
y+$ 复制至行尾
y+^ 复制至行首
搜索操作
/nologin 从光标处向下查找nologin,查找下一个可以按n键,上一
个可以用N键,此时最底行出现?nologin
?nologin 从光标处向上查找nologin,向下查找按N键,向上查找按 n键
v 模式
进入v模式 移动光标选择区域
编辑时需要进行多行注释
1.ctrl+v进入到v模式
2.向下或向上移动光标
3.把需要注释的行的开头标记起来
4.然后按大写的I
5.再插入注释符,比如"#"
6.再按Esc就会全部注释了
删除多行注释
ctrl+v 进入v模式;向下或向上移动光标,选中注释部分,然后 按d
VIM命令行模式
:w 保存
:q 没有进行任何修改,退出
:q! 修改了,不保存,强制退出
:wq 保存退出
:wq! 强制保存并退出
替换
:%s/this/that :每一行的第一个this被替换成that
:%s/this/that/g 全文所有的this被替换成that
:1,10s/old/new/g 1-10行中的old被替换成new
:set nu 显示行号
:set nonu 取消行号
:nohl 取消高亮
:!命令
:8,10 w /tmp/password.txt #表示把当前文件的8至10行内容写入 到/tmp/password.txt这个新文件中
:r!命令 #把命令的结果写到当前文件光标处的下行
:ab mail 2234455977@qq.com #用mail代替了2234455977@qq.com
:set all #显示当前vim的环境配置
:set showmatch,set sm #括号匹配高亮
:set nosm #取消括号匹配高亮
:set ai #启用自动缩进
:set noai #禁用自动缩进
:syntax on #语法高亮
:syntax off #禁用语法高亮
:set ic #忽略大小写
:set noic #禁用忽略大小写
:set tabstop=4 #设置按一下tab键会移动4个空格
:set ts=4 #同上
:n1,n2 m n3#将n1,n2行之间的内容移到到n3行的下面
:n1,n2 co n3#将n1,n2行之间的内容复制到n3行的下面
命令模式也可保存,用ZZ
命令模式下改一个字符,用r 再输入相应字符
命令模式下改多个字符,有R 再输入相应的字符,然后再按esc
如果用vim打开了一个目录,直接退出就可以了
vim file1 file2 同进打开多个文件
:first 编辑第一个文件
:last 编辑最后一个文件
:next 编辑下一个文件
:prev 编辑前一个文件
:qall 退出全部文件
:n #向下切换
:N #向上切换
:files #列出当前编辑的所有文件
vim -o file1 file2 同时打开多个文件(文件水平显示)
高亮的为编辑状态
切换:ctrl+w+上下方向键 ctrl+ww
vim -O file1 file2 同时打开多个文件(垂直显示)
切换:ctrl+w+左右方向键 ctrl+ww
自定义vim
vim ~/.vimrc写下命令
set nu
set history=10 #在命令行模式下保存的命令的个数
图形编辑器 gedit
列出文件编码 [root@apenglinux ~]# iconv -l
通过iconv命令转码
-f,--from-code=名称 原始文本编码
-t,--to-code=名称 输出编码
-o,--output=file 输出文件
-l,--list 列出所有已知的字符集
[root@apenglinux ~]# iconv -f gb2312 1.txt -o 2.txt #将编码为gb2312的文件1.txt转为linux可辨别的编码文件名为2.txt
解决将公司服务器上脚本导到windows上打开串行的问题
这是因为windows和linux处理回车不同
[root@apenglinux Packages]# rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm
[root@apenglinux ~]# unix2dos 1.sh
unix2dos: converting file 1.sh to DOS format ...
vim一般模式下的大小写
gggUG //全文转换为大写
ggguG //全文转换为小写
~ //大小写转换
g~~ //行大小转换
>> //光标所在的行向右移
<< //光标所在的行向左移
vim视图[块]模式下的大小写
选择区域+U //选择区域变成大写
选择区域+u //选择区域变成小写
vim命令行下的大小写
:%s/\<./\u&/g //全文每个单词首字母大写
:%s@\<.@\l&@g //u全文每个单词首字母小定
:%s@.*@\u& //每行首字母大写
:%s@.*@\l& //每行首字母小写
查找
/\croot //忽略大小写查找“root”
/\c\<root\> //忽略大小写查找单词“root”
删除
:g/^$/d //删除所有空行
:v/sync/d //删除除了包含‘sync’之外的行
:/sync/d //删除包含“sync”的行
追加
:m,n w >> /path/file //将m到n行的内容追加到一个文件中
定位
vim + 文件名 //定位到文件的最末行
vim +# 文件名 //定位到文件的第#行
vim +/pattern 文件名 //定位到第一次被pattern匹配到的行的行首
移动
w //移至下一个单词的词首
e //移到下一个单词的词尾
删除行首多个空格
:%s@^ \+@@g
:%s@^\s\+@@g
删除行尾多个空格
:%s@\s\+$@@g
vim引用标签,再进行删除,复制,移动
一般模式:
先将光标定位到起始行, 输入ma
定位到目标行,输入 mb
命令模式
:'a,'b m|co|dd三种任先一
成对标点符号的操作
%
di[
yi[
ci[
转载于:https://blog.51cto.com/13480443/2063113