前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux私房菜:vi与vim编辑器

Linux私房菜:vi与vim编辑器

作者头像
happyJared
发布2018-10-25 16:44:46
1.3K0
发布2018-10-25 16:44:46
举报
文章被收录于专栏:happyJaredhappyJared

本文内容精简、整理、摘抄、有感于《鸟哥的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常用指令示意图

重点回顾

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.10.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vi/vim模式
  • 快捷键
  • 区块选择
  • 多文件编辑
  • 多窗口功能
  • 其它功能
  • 重点回顾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档