linux下的编辑器vim

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 同时打开多个文件(文件水平显示)
linux下的编辑器vim
高亮的为编辑状态
切换:ctrl+w+上下方向键 ctrl+ww


vim -O file1 file2 同时打开多个文件(垂直显示)
linux下的编辑器vim
切换:ctrl+w+左右方向键 ctrl+ww

linux下的编辑器vim

自定义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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值