vim编辑器用法秘籍

模式介绍

Linux最小化安装时需要先安装vim编辑器:yum install vim。

vim共分为三个模式:分别是一般命令模式编辑模式命令行模式

一般命令模式:

用户启动vim编辑器,初始就是一般命令模式,可以删除字符、复制粘贴处理内容,不能够输入字符,输入的字符会被当做一个命令。

编辑模式:

一般命令模式按下【i,I,o,O,a,A,r,R】等任何一个字母都会进入编辑模式,左下角会出现insert或replace标志, 此时才可以编辑字符,按下ESC回到一般命令模式,退出编辑。

命令行模式:

在一般命令模式按下【:,/,?】进入 命令行模式,该模式可以查找数据、读取保存数据、退出vim编辑器、显示行号等操作。

vim编辑器用法秘籍

模式按键

一般命令模式按键说明

移动光标的方法:

  • ↑↓←→:移动光标,可以使用30↑组合,向上移动30行
  • pageup、pagedown:移动一页
  • 数字0或Home:移动到当前行行首
  • 符号$或End:移动到行尾
  • G:移动到文件的最后一行
  • nG:n为数字,移动到指定行
  • gg:移动到文件的第一行,相当于1G
  • n<Enter>:光标向下移动n行,等于↓n

上下左右的箭头可以使用hjkl代替

查找与替换:

  • /word:向下查找
  • ?word:向上查找
  • n、N:n重复查找的操作,顺着查找顺序,N反序查找

删除复制与粘贴:

  • x、X:x相当于【del】向后删除,X相当于【backspace】向前删除
  • nx、nX:n为数字,nx向后删除n个字符,nX向前删除n个字符
  • dd:剪切光标所在行
  • ndd:剪切关闭所在位置下面的n行
  • yy:复制光标所在行
  • nyy:复制光标所在的向下n行
  • p、P:p在光标的下一行粘贴,P在光标的上一行粘贴
  • u:恢复前一个操作,撤销
  • ctrl+r:重复上一个操作

编辑模式常用按键

一般命令模式切换到编辑模式按键:

  • i与l:进入插入模式,i为当前光标处插入,I为光标所在行行首插入
  • a与A:进入插入模式,a为光标所在下一个字符处开始插入,A为本行最后一个字符开始插入
  • o与O:进入插入模式,o为光标所在处下方插入新的一行插入,O为光标所在处的上一行插入新的一行开始插入
  • r与R:进入替换模式,r只能替换一次,R一直替换直到按ESC

命令行模式

  • :w:将编辑的数据写入磁盘文件中
  • :w!:当文件为只读时,强制写入该文件,但如果当前用户权限不够也写不进去
  • :q:退出vim
  • :q!:修改过文件但是不想保存,!为强制退出不保存
  • :wq:保存退出
  • :wq!:强制保存退出
  • :w [filname] :另存为另一个文件
  • :r [filename] :读入另一个文件的数据,放到光标所在行后面
  • :set nu:显示行号
  • :set nonu:取消行号
  • :! command:暂时离开vim编辑,可以去执行其他的命令

vim的缓存

在我们用vim编辑文件时,和Windows一样,也会生成一个隐藏的缓存文件,该文件名为.filename.swp,就存在当前编辑的文件目录下,出现不正确的退出vim(如宕机)时或有文件编辑冲突时该文件还会保存,当你下次打开该文件时会出现如下提示: 

vim编辑器用法秘籍

选择一个, 然后再把缓存文件删除即可。

可视区块

以块或矩形的方式进行选择和复制粘贴等操作。

在一般命令模式:

  • v:字符选择,光标经过的地方都会被选择或反选择
  • V:行选择,光标经过的行都会被选择或反选
  • ctrl+v:以矩形的方式进行选择或反选
  • y:将选中的区域复制起来
  • d:将选择的区域删除
  • p:将刚刚复制的区块,在光标处粘贴

多文件编辑

有时候需要复制一个文件的内容时可以使用多文件编辑操作(因为开启多个vim不能互相复制),使用vim filename1 filename2 ……来打开多个文件。

  • :files:可以查看当前正在编辑哪些文件
  • :n:编辑下一个文件
  • :N:编辑上一个文件

去编辑下一个文件时需要保存当前文件,可以使用!不保存强制转到下一个文件。

vim编辑器用法秘籍

多窗口编辑

vim编辑器用法秘籍

在一个vim编辑器中打开多个窗口,可以是本文件也可以是其他文件。

  • sp [filename]:打开一个新窗口,省略filename就是打开的现在编辑的文件,加filename就是其他文件
  • ctrl+w再+↓:先按ctrl+w松手,再按下箭头,则光标移动到下面的窗口
  • ctrl+w再+↑:光标移动到上面的窗口
  • ctrl+w再+q:删除当前光标所处的窗口

关键字补齐

使用ctrl+x 再按 ctrl+n可以根据当前编辑的文件内容补齐

使用ctrl+x 再按 ctrl+o可以以扩展名为语法进行补充

环境设置

常用设置:

  • :set nu和:set nonu:行号设置
  • :set autoindent和:set noautoindent:自动缩进设置,默认不会自动缩进
  • :set nu和:set nonu:行号设置
  • :set all:显示所有的环境设置
  • :set:显示与系统默认值不同的环境设置
  • :syntax on和:syntax off:是否根据语法显示不同的显色,默认开启
  • :set bg=dark和:set bg=light:更改字体的颜色样式

这些设置都是一次性的,想要永久生效需要更改/etc/vimrc文件(需要使用管理员身份)

vim编辑器用法秘籍

 上面的是全局的生效,如果只想让当前用户生效,可以在家目录新建一个.vimrc的文件,在里面写配置也能生效。

可以在网上搜索一些vim的环境配置,使vim更方便

快捷键设置:

  • :map 快捷键  快捷键执行的命令:自定义快捷键
    • 如:map ^_  I#<ESC>:设置ctrl+/设置当前行首加上#,即注释,快捷键那一行直接输入键盘的键,而不是输进去的,快捷键不能冲突
    • 如:map ^B ^x 表示按ctrl+b时删除本行的第一个字符,取消注释,^x的^是正则表达式

乱码问题

windows一般使用的是GBK编码,而Linux可以通过locale查看编码,一般都是UTF-8编码

解决方法:

1.iconv命令转码

  • -f:原始文件编码格式
  • -t:输出编码格式
  • -o:输出文件名

 iconv -f gb2312 -t utf8 aaa.txt -o bbb.txt:把原始文件aaa.txt的gb2312编码转为新文件bbb.txt的utf-8文件(注意是utf8不是utf-8)

2.在windows上另存为,转编码格式为utf-8

windows的换行符比Linux的多了一个^M,会出现错误。

解决方法:

1.在vim中:set ff=unix

2.安装dos2unix工具,用命令dos2unix  文件名

反过来,把linux下写的脚本,在win上打开,就没的换行的,解决办法:

1、安装dos2unix工具,在传回win前,用命令unix2dos 文件名 

dos2unix需要自行安装,yum install dos2unix

上一篇:在网页中实现:手势解锁密码


下一篇:Linux下执行vim ~/.bashrc报错