转载

Vim常用命令

Vim常用命令

Vim Vi  的增强版本,它没有菜单。只有命令。   www.vim.org

官方教材: vimbook

插入

a

在当前光标后插入文本

A

在本行行尾插入文本

i

在光标前插入文本

I

在本行行首插入文本

o

在光标下插入新行

O

在光标上插入新行

h

左移一个字符

j

下移一个字符

k

下移一个字符

I

右移一个字符

$

移动至当前行的行尾

0

移动至当前行的行首(数字零)

H

移动屏幕上端

M

移动至屏幕中央

L

移动屏幕下端

Gg

到整个文件的第一行

G

到整个文件的最后一行

nG

到第n行,例如5G 到整个文件的第5行

:n

到第n行

删除

x

删除光标所在处字符

nx

删除光标所在处 n 个字符

dd

删除光标所在行

ndd

删除 n 行,例如: 5dd    删除 5

dG

删除光标所在处到末尾的内容

D

删除从光标所在处到行尾

:n1,n2d

删除指定范围的行,表示删除从 n1 行开始至 n2 行。例如 :8,20d   表示删除从第 8 行至第 20 行的内容

复制和粘贴

yy,Y

复制当前行

nyy,nY

复制当前行以下的 n

dd

剪切当前行(先删除再粘贴)

ndd

剪切当前行以下 n

p

将内容粘贴在当前光标所在行的下一行(小写)

P

将内容粘贴在当前光标所在行的上一行(大写)

D

删除从光标所在处到当前行的行尾

:n1,n2d

删除指定范围的行,表示删除从 n1 行开始至 n2 行。例如 :8,20d   表示删除从第 8 行至第 20 行的内容

替换和取消

r

替换光标所在处的字符

R

从光标所在处开始替换字符,按 ESC 结束。

例如 :this is a test document

假如当前光标在 a 处,你在命令模式下输入了 R 。则你开始输入的内容都会把 a test document 给替换掉

u

取消上一步操作

搜索和替换

/string

/ 表示从文档从前往后查找 string

当按 n 的时候就会跳转到字符在一个出现的地方,当按 N 的时候,会向上跳转到上次出现的地方

开启搜索时忽略大小写  :set ic

关闭搜索时忽略大小写  :set noic

n

从前往后查询字符出现的位置

N

从后往前查找字符出现的位置

:%s/old/new/g

全文替换指定字符串, old 表示要替换的字符。 new 表示要替换成的字符

例如,将文档中所有 123 字符替换为 789

:%s/123/789/g

:n1,n2s/old/new/g

在一定范围内替换指定字符串,跟全文类似。只不过在一定范围。 n1 n2 表示在某一定行内。

例如:将第 10 行至 12 行中的 789 替换成 007 字符

:10,12s/789/007/g

也可以把 :10,12s/789/007/g 后面的 g 改为 c 字符( :10,12s/789/007/c ),会出现确认信息提示你是否要替换(类似 Windows 中的:你确定要删除吗?)

replace with 007 (y/n/a/q/l/^E/^Y)?

y :替换

n :不替换

a :替换所有

q :取消替换

保存和退出

:w

只保存不退出

:w a.txt

保存至 a.txt 文件(另存为)

:q

只退出

:q!

退出不保存

:wq

退出并保存

:wq!

强行退出并保存(只针对于文件的所有者或者 root 才能这样做)

ZZ

退出并保存(等同于 :wq

其他技巧

导入文件

:r   文件名

1 :将 hello 文件的内容导入到 当前光标 所在处

:r hello

导入命令执行结果

:r   ! 命令

2 :将系统当前时间导入到当前光标处

:r !date

vi 中执行命令

:!   命令

例如:正在 vi 编辑某个文件的时候,想查看 /root/test 目录下有哪些内容,可以执行如下命令

:! ls /root/test

此时屏幕将会出现 test 目录中的内容,会提示你按任意键回到 vi 编辑中

Press ENTER or type command to continue

定义快捷键

:map  快捷键   触发命令

1 :不管光标在当前行的任意位置,当按下 ctrl+b 的时候。将行首的 # 注释给删除掉。

命令如下

:map ^b 0x

2 :不管光标在当前行的任意位置,当按下 ctr+p 的时候。给行首添加 # 注释

:map ^P I#<ESC>

^ 表示是 ctrl 键) ^b 是通过 ctrl+v+b 或者 ctrl+v   ctrl+b 给按出来的。如果是通过 ctrl 按出来的 ^ 的话,显示的是这样 Vim常用命令

^p 是绿色的

取消快捷键

:unmap  快捷键

例如:取消 ctrl+b 的快捷键

:unmap ^b

连续行注释

:n1,n2s/^/#/g

:n1,n2s/^/#//g

:n1,n2s/^//////g

1 :在 5 10 行行首添加 #

命令如下

:5,10s/^/#/g

^ 表示回到行首

2 :取消 5 10 行行首的 #

:5,10s/^#//g

3 :在 5 10 行行首添加 //

:5,10s/^//////g

其中 / 表示转义字符, //// 不是字母 W 而是 / /

替换

:ab abc  abc@163.com

表示当你输入 abc 的时候, 会自动转换为 abc@163.com

1 :如果你在 vi 中经常输入一串字符,而又不想定义快捷键。可以使用 ab 的方式。假如, 你经常输入 abc@163.com 。则可以像下面这样

:ab  abc@163.com

这条命令会在你在 vi 中输入 abc 时,回车或者空格时, abc 字符将会变成 abc@163.com

配置VI

vi的配置文件在每个用户的home目录下的.vimrc文件, 如果想每个用户都生效,则修改/etc/vimrc文件

没有这个文 件的话,可以新建一个,注意权限问题

例如vi /root/.vimrc文件,输入如下简单配置

syntax on

set nu

set autoindent

在使用vim的时候有语法高亮,但是使用vi的时候没有语法高亮的解决办法?

设置vim的别名为vi即可: alias vi=vim

正文到此结束
Loading...