vim编辑器的使用

现在是2019年,回到十年前,戴着AKG耳机,听着交响乐,坐在电脑前,看着网上各种论坛,帖子。我还在用着塞班手机,上着学。

Vim是Unix强大的编辑器,linux操作服务器运维必备。

将它的功能以及快捷键使用的淋漓尽致是我们编程道路上的强有力的助手。虽然现在很多编辑器很智能又有好看的界面,但绝对替代不了vim在心目中的地位。

历史:vim由vi衍生出来,对程序员非常友好,可以不适用鼠标完成基本上所有要用到的操作。

Vim的6种模式:

普通模式,这也是Vim启动后的默认模式。(注意:启动后并不是插入模式)按a键(append)或者i键(insert)进入插入模式。普通模式命令一般需要一个操作符结尾:dd删除整行,d+光标移动键删除,2dd=dj

插入模式,此模式下输入在文档中插入文本,按ESC或者 Ctrl+[ 退出,回到普通模式。

可视模式,和普通模式类似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的"文本对象"也能和移动命令一样用在这个模式中。

选择模式,可用鼠标或者光标键选择高亮文本,输入任何字符的情况下,会替换选择的高亮文本并进入插入模式

命令行模式,可以输入被解释成执行的文本。例如执行命令(:键),搜索(/?键)或者过滤命令(!键)。

Ex模式,和命令行模式类似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。

普通模式、插入模式、命令行模式这三种模式最常用。

vim+要打开的文件名或者要新建的文件名打开文件,记得加后缀名哦。只输入vim命令会打开编辑器,显示默认的它是个开源的需要赞助的给儿童捐款的一系列内容。并未打开任何文件,这个情况下:q!可强制退出,:进入命令行模式后输入:e 文件路径 打开文件。

移动光标:

h,j,k,l 这四个字母按键分别对应向左,向下,向上,向右 (曾经为了记忆这个我把h当head记忆,向头部移动,j下面有个勾,向下移动...真是把脑袋都想破了)后来知道这是原来最早的打字机上面这几个字母的位置是方向键,大家都熟悉了这样的规定所以在后来键盘不再是以前的顺序了的时候这几个键代表的方向也延续了下来。当然现在你用方向键也可以移动,但是双手就要离开你的编辑区域。

w移动到下一个单词,b移动到上一个单词。

普通模式下进入插入模式并在相应位置定下光标

i:当前位置

I:在行首

A:在行末

a:在光标后插入编辑

o:在当前行后插入新行

O:在当前行前插入新行

cw:替换从光标所在位置后到一个单词结尾的字符

命令行模式 w保存,w文件名可以将文档另存为其他文件名或者其他路径下

:q! 强制退出,不保存

:q 退出

:wq! 强制保存退出

:w<文件路径>

:saveas 文件路径 另存为

:x 保存并退出

:wq 保存并退出

普通模式下 shift+zz  是保存退出

普通模式下的删除

快速删除

x删除光标所在字符,删除光标前一个字符 同Delete

dd删除整行

dw删除一个单词

d$ 或 D 删除至行尾

d^删除至行首

dG 删除到文档尾

d1G 删除到文档首

当然这么多操作任谁都不会一下子就很熟悉,想要熟练运用还需多在操作中使用。

噢,对了,我说的那个打字机其实是一个视频终端显示器叫ADM-3A

Vim进阶内容

在普通模式下.(小数点)表示重复上一次的命令操作 这样繁杂一点的操作就可以不用每次都摁了 好好啊

输入数字+操作指令 可以重复n次此操作比如 7dd 10x d5w 删除5个单词 这样编辑的时候不停的微运转大脑保持精力集中,好爱vim

行间跳转

nG 直接移动到第n行 (:set nu 在Vim中显示行号)

gg 移动到第一行 (恩mm 不是good game那个gg)现在就好想在博客园编辑中用这些快捷键啊,就不用去动鼠标了。

G 移动到最后一行 (都是行首)

跳转过程中随时可以使用Crtl+o来回到上次的位置

行内跳转

w 下一个单词开头的位置

e 当前单词结尾的位置

b 前一个单词开头的位置

ge 前一个单词结尾的位置

0或^ 到行开头

$ 到行结尾

f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(非常实用)

F<字母> 向前搜索<字母>并跳转到第一个匹配的位置 

t<字母> 向后搜索<字母>并跳转到第一个匹配的位置之前的一个字母

T<字母> 向前搜索<字母>并跳转到第一个匹配的位置之后的一个字母

~把后面的字母大写变小写 把小写变大写

复制及粘贴(用的最多了吧)

 y复制

yy复制所在的整行 和dd类似 dd是剪切操作 

y^复制到行首 

y$复制到行尾

yw复制一个单词

yG复制至文本末

y1G复制到文本开头

p粘贴

p粘贴至光标后

P粘贴至光标前

技巧 :ddp 交换上下行

查找替换

r + 要替换的字母 将替换光标所在的字母

R 连续替换 直到按ESC

CC替换整行 (删除游标所在行并进入插入模式)

cw替换一个单词(删除一个单词并进入插入模式)

C替换游标以后至行末

~反转游标所在的字母的大小写

u{n}撤销一次或者n次操作

U撤销当前行所有的修改

Ctrl+r redo,反撤销

普通模式下

/ 查找 /后输入要查找的字符 按回车查找  

? 与/ 相同 ?向上查找 /向下查找

查找后输入n下一个内容 N上一个内容

当查找到文档底部的时候会有一行提示,到底儿了从头开始查找

命令行模式输入 :noh取消搜索

高级查找

\* 寻找游标所在的单词 注意是反斜杠

\# 同上 向上找

g\*同 \* 是部分符合

g\# 同理

指令特别多 ,记不住那就是很难,用好了就是神。游标的位置很重要,很多查找都是相对于游标位置。

快速缩进

>> 整行向右缩进

<< 整行向左缩进

:set shiftwidth可以设置缩进值

 命令行模式 :ce 文本居中 ri可以使文本靠右 le使文本靠左

Vim高级内容

多文本编辑

1.直接输入多个文件名进行打开或新建

:n切换下一个文件 :N切换到上一个文件 !n !N 强制切换,不保存上一个文件所输入的内容 切记!

2.进入vim后打开新文件

使用命令行模式 :e 新文件名或路径

:e# 回到前一个文件 ls 列出所有编辑过的文档 会有一个编号

:b 文档名或者编号 可以直接进入该文档

:bd 文档名或编号 可以删除以前编辑过的列表中的文件项目

Vim其他的几个模式 

可视模式

在普通模式输入v 进入字符选择模式 移动光标可以进行选取 再次按下v取消选取

       shift+v 进入行选择模式  按下V可以整行选取 再次shift+v取消选取

          ctrl+v 区域选取模式 可以进行矩形区域选择 再次ctrl+v取消选取

        (替代鼠标选中操作)

可是模式下 输入d删除选取区域内容

       y复制选取内容

视窗操作

命令行模式下输入:new 就会在当前文档窗口的上面打开一个新的Vim窗口 (相当于分屏)

其他相关指令

  • 命令行模式下输入:sp 1.txt 打开新的水平分屏视窗来编辑1.txt
  • 命令行模式下输入:vsp 2.txt 打开新的垂直分屏视窗来编辑2.txt
  • 普通模式下Ctrl+w s 将当前窗口分割成两个水平的窗口
  • 普通模式下Ctrl+w v 将当前窗口分割成两个垂直的窗口
  • 普通模式下Ctrl+w q 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
  • 普通模式下Ctrl+w o 打开一个视窗并且隐藏之前的所有视窗
  • 普通模式下Ctrl+w j 移至下面视窗
  • 普通模式下Ctrl+w k 移至上面视窗
  • 普通模式下Ctrl+w h 移至左边视窗
  • 普通模式下Ctrl+w l 移至右边视窗
  • 普通模式下Ctrl+w J 将当前视窗移至下面
  • 普通模式下Ctrl+w K 将当前视窗移至上面
  • 普通模式下Ctrl+w H 将当前视窗移至左边
  • 普通模式下Ctrl+w L 将当前视窗移至右边
  • 普通模式下Ctrl+w - 减小视窗的高度
  • 普通模式下Ctrl+w + 增加视窗的高度

创建加密文档

vim -x 文件名 

进去输入密码,下次打开会要求输入密码,这里注意输入错误的密码不是打不开,也能打开文档,但是文档的内容是加密过的。输入正确的密码内容就正常显示。但是输入错误密码进去可以编辑,可能会破坏原有的内容,我把你内容删了,下次你输入密码进来也看不到。

在命令行模式下输入:! 可执行外部的shell命令

Vim的系统帮助

普通模式下摁F1 打开帮助文档

命令行模式输入:h 加一些属性名 可以查看该属性的帮助

关于Vim的设置

永久保存设置需要修改vim配置文件~/.vimrc

  • 命令行模式下输入:set或者:se显示所有修改过的配置
  • 命令行模式下输入:set all 显示所有的设定值
  • 命令行模式下输入:set option? 显示option的设定值
  • 命令行模式下输入:set nooption 取消当前设定值
  • 命令行模式下输入:set autoindent(ai) 设置自动缩进
  • 命令行模式下输入:set autowrite(aw) 设置自动存档,默认未打开
  • 命令行模式下输入:set background=darklight,设置背景风格
  • 命令行模式下输入:set backup(bk) 设置自动备份,默认未打开
  • 命令行模式下输入:set cindent(cin) 设置c语言风格缩进

此乃编辑器之神

Vim在线文档 : http://vimdoc.sourceforge.net/htmldoc/usr_toc.html

posted @ 2019-01-05 23:37  中国骑士  阅读(207)  评论(0编辑  收藏  举报
jQuery火箭图标返回顶部代码