专栏首页happyJaredLinux私房菜:vi与vim编辑器

Linux私房菜:vi与vim编辑器

本文内容精简、整理、摘抄、有感于《鸟哥的Linux私房菜 - 基础篇第四版》第九章 • vim程序编辑器。

vi/vim模式

  • 一般指令模式 ( command mode )
    • vi/vim File,打开文件后即进入当前模式
  • 编辑模式 ( edit mode )
    • 一般指令模式下,按i,I,a,A,o,O,r,R任意键进入
  • 指令列命令模式 ( command-line mode )
    • 一般指令模式下,按:,/,?任意键进入

快捷键

一般指令模式下,对应的常用操作键:

光标移动

说明

k 或 ↑

向上移动

j 或 ↓

向下移动

h 或 ←

向左移动

l 或 →

向右移动

ctrl + f 或 page up

向下翻页

ctrk + b 或 page down

向上翻页

ctrk + d

向下翻半页

ctrk + u

向上翻半页

n + 空格键

右移n个字符

0 或 home

移动到当前列最前面

$ 或 end

移动到当前列最后面

H

屏幕第一行最前面

M

屏幕中间行最前面

L

屏幕最后一行最前面

G

跳到文件最后一列

n + G

跳到文件第n列

gg

跳到文件第一列,相当于1G

n + enter键

往下移动n列

搜索、替换

说明

/word

向下搜索

?word

向上搜索

n

搜索匹配的下一处

N

搜索匹配的上一处

?word

向上搜索

:n1,n2s/word1/word2/g

将n1到n2行的所有word1替换成word2

:1,$s/word1/word2/g[c]

全局搜索,将所有word1替换成word2,最后那个可选的c用于在全局替换前进行确认

删除、复制及替换

说明

x 或 del

向后删除一个字符

X 或 backspace

向前删除一个字符

n + x

向后删除n个字符

dd

整行删除

ndd

向下n行删除

dnG

向上删除到第n行

dG

向下删除全部

d$

删除光标处到最后面

d0

删除光标处到最前面

yy

复制整行

nyy

向下复制n行

ynG

向上复制到第n行

yG

向下复制全部

y$

复制光标处到最后面

y0

复制光标处到最前面

p

复制内容从下一行开始粘贴

P

复制内容从上一行开始粘贴

J

当前行与下一行合并成一行

u

还原前一个操作

ctrl + r

重做前一个操作

.

重复做上一个操作

从一般指令模式进入编辑模式,对应的常用操作键:

操作

说明

i

光标所在处前开始插入

I

所在列最前面开始插入

a

光标所在处后开始插入

A

所在列最后面开始插入

o

光标所在处上一行开始插入

O

光标所在处下一行开始插入

r

替换模式,只取代光标处字符一次

R

替换模式,一直取代光标处字符直到按ESC退出

ESC

退出编辑模式,回到一般指令模式

从一般指令模式进入指令列模式下对应的常用操作键:

操作

说明

:w

保存,但不退出

:w!

强制保存(跟用户的操作权限有关)

:q

退出vi/vim(没有操作的情况下可成功退出)

:q!

强制退出vi/vim,也不保存修改

:wq

保存修改并退出vi/vim

ZZ

保存修改后退出vi/vim

:w [file]

另存为file

:n1,n2 w [file]

将n1到n2列另存为file

:r [file]

将file的内容追加到光标下一列

:! [command]

暂离vi/vim编辑执行后面的command,按Enter后返回

:set nu 或 :set number

显示行号

:set nonu 或 :set nonumber

取消显示行号

区块选择

操作

说明

v

字符选择,将光标移动过的位置全部选择

V

列选择,将光标移动过的位置全部选择

ctrl + v

区块选择,将光标移动过的位置全部选择

y

复制上述所选

d

删除上述所选

p

粘贴上述所选

多文件编辑

vim还支持同时打开多个文件,用于跨文件操作:vim file1 file2 file*

操作

说明

n

编辑下一个文件

N

编辑上一个文件

files

列出当前vim编辑的所有文件

多窗口功能

操作

说明

sp [filename]

开启多窗口,如果不输入默认为当前文件

ctrl + w + j 或 ctrl + w + ↓

将光标移动到下一个窗口

ctrl + w + k 或 ctrl + w + ↑

将光标移动到上一个窗口

ctrl + w + q 或 :q

退出当前窗口

其它功能

  • 代码提示补全
  • 环境设定。set all命令用于查看所有的设定值,vim的设定文件在一般放置在/etc/vim/vimrc,自定义下建议新建保存在~/.vimrc
  • vim常用指令示意图

vim常用指令示意图

重点回顾

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小巧实用的HTTP代理抓包工具:mitmproxy

    这步比较简单,直接pip install mitmproxy,或者自行下载安装包。更多更详细的安装说明可以查看这篇文章:MitmProxy的安装

    happyJared
  • 锁机制与 InnoDB 锁算法

    happyJared
  • 实现Java热部署的几种解决方案

    happyJared
  • 晒下我的vim-看这货是IDE吗?

    今天在公司配了下vim,参考了同事的配置,搞了几个不错的插件,回到家里把环境统一下。上两个图,看看效果如何。 darkblue配色:

    the5fire
  • 【我的漫漫跨考路】数据结构之线性表

    正文之前 ? 昨天晚上阶段性的完成了一部分数学的复习(一元积分学终于搞定了,后面的貌似没这么难了),所以今天打算撸一撸代码,结合前几天写的链表实现线性存储,今天...

    用户1687088
  • Winforms 可能遇到的 1000 个问题 去掉最大化和最小化按钮使用系统的图标禁止用户修改窗口大小隐藏标题栏的图标

    如果需要去掉最大化和最小化按钮,只需要设置 MinimizeBox 或 MaximizeBox 为 false 请看下面代码

    林德熙
  • 【连载14】VGG、MSRANet和Highway Networks

    在论文《Very Deep Convolutional Networks for Large-Scale Image Recognition》中提出,通过缩小卷...

    lujohn3li
  • FEMS综述——土壤微生物生态学的已知和未知

    The known and the unknown in soil microbial ecology

    生物信息知识分享
  • Python--6 文件操作

    文件通常用于存储数据或应用系统的参数。Python 提供了 OS、 os.path、 shutil 等模块处理文件, 其中包括打开文件、 读写文件、 复制和删除...

    py3study
  • 瓜子二手车市场分析(Scrapy+Tableau)

    本文对瓜子网杭州二手车进行了爬取和简单分析,一方面是为了进一步熟练使用Python的Scrapy爬虫框架,另一方面是为了熟悉Tableau强大的数据可视化功能。

    luanhz

扫码关注云+社区

领取腾讯云代金券