Vim编辑器入门

霸气de小男生 提交于 2020-11-08 13:30:51

vim编辑器较vi的显著优势:vim可以用颜色或底线等方式来显示一些特殊的信息。

Vim有三种工作模式:

  • 一般模式:以vim打开一个文件默认进入一般模式(若指定文件不存在,vim会开辟一段新的缓冲区域来编辑),可进行光标移动。复制、粘贴、删除、等功能。

       

    一般模式中常用的一些命令(注意区分命令的大小写)

命令

作用

X

向前删除一个字符(相当于退格Back键)

x

向后(光标所在处)删除一个字符(相当于Delete键)

dd

删除(剪切)光标所在整行(delete删除)

5dd

删除(剪切)从光标处开始的5行

yy

复制光标所在整行(yank onto猛拉到)

5yy

复制从光标处开始的5行

p(小写)

将之前剪切(dd)或复制(yy)过的数据粘贴到光标后(paste粘贴)

P(大写)

将之前剪切(dd)或复制(yy)过的数据粘贴到光标前

/word

向下搜索"word"字符串

?word

向上搜索"word"字符串

n

显示搜索命令定位到的下一个字符串(next下一个)

N

显示搜索命令定位到的上一个字符串

u

撤销上一步的操作,可多次使用(如uu表示撤销两步操作)(undo撤销)

ctrl+r

复原/反撤销(redo恢复)

5→

向右移动5个字符(↑、↓。←、→均可操作)

G

移动到文件最后一行(goto转到)

5G

移动到文件的第5

gg

移动到文件的第一行(相当于1G

dG

删除光标所在行到最后一行的所有数据(复制:yG)

d1G

删除光标所在行到第一行的所数据(复制:y1G)

d$

删除光标所在处到该行尾("删右")的所有数据(复制:y$)

d0

删除光标所在处到该行首("删左")的所有数据(复制:y0)

ZZ

保存并退出(若文件内容未发生修改,mtime不变)

  • 输入模式:从一般模式切换到输入模式可通过a、i、o等键(退出输入模式,返回一般模式:Esc键)

命令

作用

i

在光标所在处(向后)输入(insert插入)

I

在当前行的行首处输入

a

在光标下一个字符处输入(append追加)

A

在当前行的行尾处输入

o

在当前行的下一行插入新的一行并输入(open new line开启新一行)

O

在当前行的上一行插入新的一行并输入

ctrl+n

补全已出现过的单词

[ctrl+x]+[ctrl+f]

补全当前目录下的文件名

  • 命令(末行)模式:可通过:冒号从一般模式切换到命令(末行)模式(退出命令模式,返回一般模式:Esc键)

    命令(末行)模式中常用的命令

命令

作用

:q

退出(quit

:q!

强制退出(放弃对文档的修改内容)

:w

保存(write file写入文件)

:w!

强制保存(若文件属性为"只读",强制写入该文件)

:wq

保存并退出(文件的修改时间mtime一定会变化)

:wq!

强制保存退出

:x

保存并退出(若文件内容未发生修改,mtime不变)

:w a.txt

另存为a.txt文件

:n1,n2 w b.txt

将第n1行到n2行的内容另存为b.txt文件

:r c.txt

在当前行的下一行追加读入c.txtread读取)

:整数

跳转到该行

:s/one/two

将当前光标所在行的第一个one替换成twosubstitute替换)

:s/one/two/g

将当前光标所在行的所有one替换成twoglobal全局的)

:%s/one/two/gc

将全文中的所有one替换成two,并提示是否确认替换(confirm确认)

:n1,n2s/one/two/g

将第n1行到n2行(包括第n1、n2行)的所有one替换为two

:命令

执行该命令

:!命令

暂时离开Vim跳转去执行命令,执行命令完成后按Enter建可返回Vim编辑器

:set nu

显示行号(下一次重新打开后会不存在)(number编号)

:set nonu

不显示行号

:nohlsearch

消除当次搜索后的关键字的高亮

:set hlsearch

(默认)将查找到的关键字高亮显示(high light search高亮度查找)

:set nohlsearch

取消将查找到的关键字高亮的效果

:syntax on

根据程序相关语法显示不同的颜色(syntax语法)

:syntax off

取消语法颜色显示

:set ignorecase

忽略大小写

:set autoindent

自动缩排

:set noautoindent

取消自动缩排

   

在一般模式下误触q键,会进入"录制"宏模式,此时可再按q键退出切换回一般模式

来自 <http://www.netingcn.com/vim-recording-function.html>

   

搜索字符串的时候在底部出现"Search it Bottom, Continuing at Top" 或 "Search hit Top, Continuing at Bottom" (正则模式)

  1. Search it Bottom, Continuing at Top:当按"n"键进行向下重复搜索,并且已经搜索到文件的末尾,如果继续按"n"键,则从文件头继续搜索。
  2. Search hit Top, Continuing at Bottom:正好相反,按"N"键向上重复搜索,到达文件头继续从文件尾开始继续搜索。

来自 <https://www.cnblogs.com/orientsun/archive/2012/11/19/2778021.html>

   

在使用vim打开编辑文件时,vim会主动创建一个暂存文件,防止操作数据丢失。

通过ctrl+z将vim进程放置后台挂起后,再重新使用vim编辑此文件

Open read-only:以只读方式打开此文件(不能编辑)

Edit anyway:以正常的方式编辑此文件,不载入暂存文件的内容(容易出现两个用户互相改变对方的文件内容等问题)

Recover:加载暂存文件的内容(恢复之前未保存的工作)

Quit:退出vim,不进行任何操作回到命令提示符

Abort:终止忽略这个编辑行为,类似于quit返回命令提示符

   

Visual可视模式:可通过v或V从一般模式切换到可视模式(退出可视模式,返回一般模式:Esc键)

命令

作用

v

字符选择(visual),会将光标经过的地方反白选择

V

行选择(visual line),会将光标经过的行反白选择

ctrl+v

块选择(visual block),用长方形块的方式选择数据

y

复制反白的选择

d

删除(剪切)反白的选择

p

将之前剪切(dd)或复制(yy)过的数据粘贴到光标后

   

多窗口编辑

命令

作用

:split 2.txt

(水平)分割窗口打开2.txt新文件(若不加文件名,表示两个窗口均为当前文件的内容)(split拆分)

[ctrl+w]+↑/↓/←/→

切换到上///右方的窗口(先按组合键ctrl+w,松开后再按方向键)

:vsplit

垂直分割窗口(vertical垂直的)

:q

退出当前窗口(须先切换到对应窗口)

   

修改vim的操作环境 :修改~/.vimrc(默认不存在,须手动创建)文件,将设置值写入

   

Vim显示中文乱码问题

修改~/.vimrc文件,添加语句:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936(自动识别UTF-8或GBK编码的文件)

来自 <http://blog.csdn.net/jnbbwyth/article/details/6991425/>

   

Vim编辑器设置制表tab键为4个空格(Linux下tab键默认为8个空格长度,windows下默认为4个空格长度)

修改/etc/vimrc,添加语句:

set ts=4

来自 <http://bbs.csdn.net/topics/220068519>

 

 参考资料:

vim中文手册:<http://vimcdoc.sourceforge.net/doc/help.html>

vim命令英语解析:<http://glaciated.org/vi/>

超级齐全的vim命令备忘录(英语全称解析):<http://www.fprintf.net/vimCheatSheet.html>

更多的vim命令:<https://www.cnblogs.com/yangjig/p/6014198.html>  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!