`

vim编辑命令总结

阅读更多

1:: 这是Vi的命令执行界面(最后行方式命令 )
set number //显示行号

all:列出所有选项设置情况
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号

 

n:光标移至第n行首 (可以进行++++,------运算)

 

2:命令模式下

移动光标类命令

字符
h :光标左移一个字符
l :光标右移一个字符

k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行

 

w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾

 

0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

 

段落
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾

 

·屏幕

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行

Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏

Ctrl+b;向文件首翻一屏
Ctrl+f:向文件尾翻一屏

特殊

Backspace:光标左移一个字符 (跨行)

Enter :光标下移一行

 

命令模式删除:

删除一行,执行两次d或一次D

删除一个字符,x

 

3:编辑模式下

i :光标前
I :行首
a:光标后
A:当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
 
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键(顺序替换多个)

s:从当前光标位置处开始,以输入的文本替代指定数目的字符   例如:2s替换两个字符
S:删除指定数目的行,并以所输入文本代替之                 例如:2S替换两行

(nCC:修改指定数目的行 和上面的功能类似)
ncw或nCW:修改指定数目的字 例如:2cw替换 两个组合字   中国人 和平 kk

 

删除命令

x或X:删除一个字符,x删除光标后的,而X删除光标前的
ndw或ndW:删除光标处开始及其后的n-1个字 《n为参数》
d0:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行 《多行删除功能》    和删除功能的差异

4:搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令

 

:s/p1/p2:将当前行中第一个p1均用p2替代
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

下面的命令把整个文件中的old的每次出现都改为new:
:1, $s / old / new / g
我们知道%等价于1,$,所以上行命令也可以这样写:
:% s / old / new / g

 

确认替换
使用搜索替换命令有时候会出错,而得到不想要的结果。所以小心并确认文件中需要修改的内容是一个明智的做法
在替换命令尾部加上c (confirm用于确认),在替换每个old前都会提示并确认:
:1, 30 s /old/new/ gc
将会出现提示replace with hehe (y/n/a/q/l/^E/^Y)? 
y替换,n不替换,a替换所有,q放弃,l替换第一个并进入插入模式,^E和^Y是提示你用Ctrl+e或Ctrl+y来滚动屏幕的。


上下文相关替换
除了直接使用一个单词(或短语)替换另一个,还有稍微复杂的全局替换语法。这些语法可以对一个模式进行搜索,一旦找到含有模式的行,就可以使用不同与模式的串进行替换,我们把这种替换叫做上下文相关替换。
语法格式如下:
:g /pattern/s/old/new/g    将会把包含pattern的行中,把所有old替换为new
第一个g表示是在文件的所有行上执行的命令,模式pattern识别要发生替换的行。在那些包含模式pattern的行上,ex将把old替换(s)为new。最后的g表示在该行上进行全部替换。
如果用来进行搜索的模式与想要修改的模式相同,那么就不必重复它:
:g/string/s//new/g  等价于  :g/string/s/string/new/g
还要注意:
:g/string/s//new/g  也等价于 :% s/string/new/g

 

5:文件操作命令

vi filename 打开一个文件,所涉及到的模式open  edit recover quit abort
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑

 

:w :保存当前文件
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi

 

:e filename:打开文件filename进行编辑 《在当前模式下 还可以继续打开其他的文件 》

:   e ! 重新编辑当前文件,忽略所有的修改

 

:n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。
:n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。
:n1,n2 d 将 n1 行到 n2 行之间的内容删除。
:n1,n2 w filename 将 n1 行到 n2 行之间的内容保存到文件 filename 中
:nr <文件> 把<文件>插入到第n行
:so <文件> 读取<文件>,再执行文件里面的命令(文件中的命令应该都是一些ex命令)
:w >> <文件> 添加到<文件>末尾. 也可以使用行号

:n1,n2 w ! Command 将文件中n1行到n2行的内容作为 Command的输入并执行之,
若不指定 n1、n2,则将整个文件内容作为 Command 的输入。
:r ! Command 将命令 Command 的输出结果放到当前行。
:! command:执行shell命令command

 

6:寄存器操作

传统软件的复制(copy),剪切(cut),粘贴(paste),在Vim中对应的是yank,delete和put。
在Vim中的复制,删除,替换等操作的临时内容,都会存储在寄存器中。
无名寄存器("") 复制专用寄存器("0) 删除专用寄存器("1-"9) 命名寄存器("a-"z) 黑洞寄存器("_d) +操作系统的剪贴板

:reg 显示所有当前的registers
yy  将当前行复制到缓冲区
yw  将当前单词复制到缓冲区
y1  将光标处的一个字符复制到缓冲区
p   将缓冲区的信息粘贴到光标的后面
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
例如:ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

7:多个文件操作

在终端里输入  vim file1 file2 ... filen便可以打开所有想要打开的文件;
vim已经启动:open file  :e file
同时显示多个文件: :split :vsplit
在文件之间切换: 文件间切换 Ctrl+6—下一个文件 :bn—下一个文件 :bp—上一个文件
在窗格间切换的方法 Ctrl+w+方向键——切换到前/下/上/后一个窗格 Ctrl+w+h/j/k/l ——同上 Ctrl+ww——依次向后切换到下一个窗格中

在多个个文件之间复制:
1. 在第一个文件中使用可视模式,就是VISUAL,然后选中要复制的文本,执行命令 "+y,或者“*y这就把内容复制到剪贴板。这里可以三个字符,而且一定要在可视化模式中,并存选中你要复制的代码以后,输入上面的命令,这时在VIM中 的下面并不显示你输入的这条命令。
2.在另一个文件中,执行命令"+p,或者"*p。就能复制过来,+指的是寄存器的意思,似乎也是操作系统的剪贴板,复制了之后,在别的地方,例如文本文件里就可以用ctrl+v了。这里也是在可视模式下,不需要输入冒号:,这里输入的命令也是看不到的。

 

分享到:
评论

相关推荐

    vim常用命令总结

    ### vim常用命令总结 #### 一、概述 `vim`是一款功能强大的文本编辑器,在Linux环境中广泛使用。本文档旨在总结`vim`编辑器中常用的命令,这些命令可以帮助用户高效地进行文本编辑工作。总结包括查找命令、修改...

    VIM常见命令总结vim常见命令总结

    以下是对VIM常见命令的详细总结: 1. **启动与退出** - `vim filename`:启动VIM并打开指定的文件。 - `:q`:在正常模式下退出,如果未保存修改,VIM将拒绝退出。 - `:q!`:强制退出,不保存任何修改。 - `:wq`...

    Vi、vim 常用命令总结

    ### Vi、vim 常用命令总结 #### Vim环境初始化 在Linux环境下,Vi和Vim编辑器的个性化设置可以通过创建并编辑`.vimrc`文件实现。该文件通常位于用户的主目录下,即`$HOME/.vimrc`。通过设置`.vimrc`,可以调整编辑...

    linux vim 命令 总结

    Linux下的ViM编辑器是一款强大的文本编辑工具,其全称为Vi Improved,是经典的Vi编辑器的增强版本。ViM在shell环境下使用,适用于系统管理和日常编程任务。通过掌握ViM的基本命令和操作模式,可以极大地提升Linux...

    vim 基本命令总结表

    本文将对 Vim 的基本命令进行详细的总结,帮助用户更好地掌握这款工具。 1. 打开文件操作: - `vi`:进入 Vim,不加载任何文件。 - `vi filename`:打开名为 `filename` 的文件进行编辑。 - `vi filename1 ...

    vim编辑命令_自己总结

    通过熟练掌握 Vim 的常用命令,能够显著提升编辑效率。以下是一些关键的 Vim 命令,涉及移动、跳转、搜索、编辑以及字符串替换等多个方面。 1. **移动及跳转**: - `:n` 和 `nG` 命令允许快速跳转到文件中的特定行...

    vim常用命令.txt

    `vim`支持命令模式、插入模式以及可视模式等多种编辑方式,并且可以通过一系列丰富的命令来高效地进行文本编辑工作。本文将围绕提供的文件中的内容,对`vim`的常用命令进行详细解析。 #### 二、具体知识点解析 ###...

    vim命令学习笔试总结总结总结

    ### vim命令学习笔试总结 在深入探讨vim命令之前,我们先来了解一下vim的基本概念及其重要性。Vim(Vi IMproved)是一款高级文本编辑器,它基于早期的vi编辑器进行了大量的改进和功能增强。Vim因其高效的操作、丰富...

    vim的基本命令

    编辑命令 - **zo**:展开 - 展开折叠的代码块。 - **zc**:合并 - 折叠当前行所在的代码块。 - **zt**:光标所处行滚屏至当前页顶行 - 调整屏幕,使得光标所在行位于屏幕的顶部。 - **zz**:光标所处行滚屏至...

    学习vi和vim编辑器.pdf_vim实用_vi_vim_

    **vi和vim编辑器详解** **一、vi编辑器简介** vi(Visual Editor)是Linux/Unix系统下的一款强大的文本编辑器,它以其简洁高效的操作方式深受程序员和系统管理员的喜爱。vi的名字来源于“Visual”首字母,但在无...

    vim实验报告.docx

    实验报告“Linux Vim”主要涵盖了在Linux环境下使用Vim编辑器进行文本操作的基本技能和技巧。Vim(Vi IMproved)是一款强大的文本编辑器,它提供了丰富的命令集和高效的编辑功能,是Linux系统中常见的文本处理工具。...

    linux的vim编辑器命令大全

    以上内容总结了vim编辑器的一些常用命令,包括进入和退出vim、基本的文本编辑操作(如删除、插入、撤销等)、文件操作(如搜索、替换、保存等),以及如何执行外部命令和自定义vim配置。通过掌握这些命令,用户可以...

    Linux vim常用命令

    供IC设计者或使用Linux系统做项目,使用vim语句打开或编辑文件,入门以及总结学习使用

    Vim编辑器常用的命令总结

    前言 作为开发者,有两个顶级编辑器,即使你不用,你也一定要知道它们是什么——  ·编辑器之神——Vim  ·神的编辑器——Emacs 所以本文就来介绍vim以及它的...用户刚刚启动vim编辑文件时,便进入了命令模式 此

    vim常用命令.docx

    Vim的命令模式、编辑模式和末行指令模式提供了全面的文本操作功能。熟练掌握这些命令,能够极大地提高文本编辑效率。对于初学者来说,可能需要时间去熟悉,但一旦习惯,Vim将变成一个非常强大且高效的工具。

    Vim命令速查手册Vim

    ### Vim命令速查手册知识点详解 #### 一、光标移动 ...以上是Vim编辑器中的常用命令总结,通过灵活运用这些命令,可以大大提高文本编辑的效率。希望这份速查手册能够帮助读者更好地掌握Vim编辑器的使用技巧。

    用vim编辑多个文件

    ### 使用 Vim 编辑多个文件的关键知识点 #### 1. 使用 `:edit` 命令编辑另一个文件 - **基本用法**:在 Vim 中,可以通过 `:edit` 命令来打开一个新的文件。例如,`:edit foo.txt` 会尝试打开名为 `foo.txt` 的...

Global site tag (gtag.js) - Google Analytics