前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim三种模式下的小技巧,提高一半工作效率

vim三种模式下的小技巧,提高一半工作效率

作者头像
Java识堂
发布2019-05-21 23:07:34
8520
发布2019-05-21 23:07:34
举报
文章被收录于专栏:Java识堂Java识堂

1

vim打开文件的几种方式

命令

作用

vim +n filename

打开文件,并定位到第n行

vim + filename

打开文件,并定位到最后一行

vim +/pattern filename

定位至第一次被pattern匹配到的行的行首

按行或pattern,可以快速打开到配置文件错误的地方,或者日志中报错的地方。

如从监控系统,或者邮件收到报错信息时,直接根据时间定位到相应的日志位置

代码语言:javascript
复制
vim +/"2019-02-17 23:01:49.994" server.log

2

vim的三种模式

命令模式(command mode)

命令模式是Vim的默认操作模式,当使用vim命令打开一个文件时,默认进入的就是命令模式。不管用户处于何种模式,只要按下Esc键就可使进入命令行模式

编辑模式(input mode)

只有在vim编辑模式下,才能将键盘键入的内容输入到当前打开的文件中

尾行模式(last line mode)

尾行模式主要用于保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号(set nu)、寻找字符串(/target)等

在命令模式下,用户按冒号键(:)即可进入末行模式下,此时Vi会在显示窗口的最后一行显示一个”:“作为末行模式的提示符,等待用户输入命令

三种模式的切换如下图

3

命令模式下的常用命令

光标移动命令

上 下 左 右

用键盘上的方向键也可,看个人习惯,这种方式比较省时间

命令

作用

h

j

k

l

行级移动

命令

作用

0

移动光标到当前行行首

$

移动光标到当前行行尾

^

移动光标到当前行的第一个非空字符

nG或者ngg

移动光标到当前文件的第n行

:n

移动光标到当前文件的第n行 (同上)

文件首尾移动

命令

作用

gg 或 :0

移动光标到当前文件的第一行

G 或 :$

移动光标到当前未经的最后一行

翻页

命令

作用

Ctrl + b

向前滚动一页

Ctrl + f

向后滚动一页

Ctrl + u

向前滚动半页

Ctrl + d

向后滚动半页

文本编辑命令

插入

在命令模式下按以下按键可进入编辑模式,执行插入操作,具体包括:

命令

作用

a

在当前光标所在字符的后面开始插入

A

在当前光标所在行的行尾开始插入

i

在当前光标所在字符的前面 开始插入

I

在当前光标所在行的行首开始插入

o

从光标当前所在行的下一行处开始插入

O

从光标当前所在行的上一行处开始插入

s

删除当前光标所在的字符开始插入

S

删除当前光标所在的行开始插入

删除

命令

作用

x

删除当前光标所在的字符

X

删除当前光标所在字符的前一个字符

dd

删除/剪切光标所在的行

复制 粘贴

命令

作用

yw

复制从光标所在位置到当前【单词结束】部分的内容

yy

复制光标所在【行】的所有字符 (包含换行符)

p

将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【后】

P

将最后一个删除或复制操作的文本内容粘贴到光标当前字符之【前】

撤销 反撤销

命令

作用

u

撤销最近的一次操作

<Ctrl> + r

恢复最近的一次操作(取消撤销)

多次执行u 命令可以连续撤销最近的操作,多次执行Ctrl+r可以连续取消撤销

查找命令

基本搜索

在Vim命令模式下,输入 / 或 ? 符号就进入了搜索模式,/ 用于正向往下搜索,? 用于反向往上搜索

命令

作用

n

查找下一个

N

查找上一个

正则表达式搜索

为了更好的进行搜索,Vim支持正则表达式,最基本的正则表达式规则包括:

符号

含义

^

表示一行的开头

$

表示一行的结尾

.

表示任意一个字符

*

匹配0次或n次

如查找行首为test的行,命令模式下输入如下即可

代码语言:javascript
复制
/^test

4

尾行模式下的命令

命令

作用

:w

保存文本

:q

退出vim,没有修改过文件

:w!

强制保存,在root用户下,文件只读也可保存

:q!

强制退出,所有改动不生效

:wq

保存并退出

:x

保存并退出

ZZ

等同于:wq

:set nu

显示行号

:set nonu‍‍

不显示行号

:set readonly

设置只读

推荐阅读:

Linux文本分析命令awk的妙用

从计算机的角度理解volatile关键字

线上CPU飚高(死循环,死锁...)?帮你迅速定位代码位置

Java识堂

一个有干货的公众号

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java识堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 光标移动命令
    • 上 下 左 右
      • 行级移动
        • 文件首尾移动
          • 翻页
          • 文本编辑命令
            • 插入
              • 删除
                • 复制 粘贴
                • 查找命令
                  • 基本搜索
                    • 正则表达式搜索
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档