vim使用入门

Vim 使用入门

https://www.zhaixue.cc/vim/vim-move.html

 

 

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按出来的^的话,显示的是这样

^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

 

posted on 2022-10-24 17:24  星河赵  阅读(24)  评论(0编辑  收藏  举报

导航