三种主要模式,插入模式、命令模式、低行模式

作者: 操作系统  发布:2019-11-07

  vim [OPTION]... FILE...

ubuntu下vi/vim 的基本用法讲解,ubuntuvim

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
vim + file 直接打开file,光标在最后一行

1 简介

vim是文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。下面讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。

vim自带基础教程:在任意一台装有vim的机器上,命令行中输入vimtutor 然后就可以看到文档了。

三种主要模式:

2 基本命令

包含vim的基本介绍、使用模式、文件的打开关闭保存、插入文本或新建行、移动光标、删除、恢复字符或行、搜索等等。

vim有3个模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。

命令模式:可以移动光标、删除字符等。

低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。按shift

  • : 进入插入模式

         命令模式:移动光标,剪切粘贴等

2.1 打开文件、保存、关闭文件(vim命令模式下使用), // 是注释的意思

vi filename //打开filename文件

:w //保存文件

:w cszhi.com //保存至cszhi.com文件

:q //退出编辑器,如果文件已修改请使用下面的命令

:q!//退出编辑器,且不保存

:wq //退出编辑器,且保存文件

         插入模式:编辑,修改文本

2.2 插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式进入底行模式

a //在当前光标位置的右边添加文本

i //在当前光标位置的左边添加文本

A //在当前行的末尾位置添加文本

I //在当前行的开始处添加文本(非空字符的行首)

O //在当前行的上面新建一行

o //在当前行的下面新建一行

R //替换(覆盖)当前光标位置及后面的若干文本

J //合并光标所在行及下一行为一行(依然在命令模式)

         扩展模式:保存退出等

2.3 移动光标(vim命令模式下使用)

①使用上下左右方向键

②命令模式下:

h 向左、j 向下、k 向上、l 向右。

空格键向右、Backspace向左、Enter移动到下一行首、-移动到上一行首。

9159金沙官网 1

2.3 删除、恢复字符或行(vim命令模式下使用)

x //删除当前字符

nx //删除从光标开始的n个字符

dd //删除当前行

ndd //向下删除当前行在内的n行

u //撤销上一步操作

U //撤销对当前行的所有操作

模式转换:

2.4 搜索(vim命令模式下使用)

/cszhi //向光标下搜索cszhi字符串

cszhi //向光标上搜索cszhi字符串

n //向下搜索前一个搜素动作

N //向上搜索前一个搜索动作

         a       在光标后插入内容

2.5 跳至指定行(vim底行模式下使用)

n+//向下跳n行

n-//向上跳n行

nG //跳到行号为n的行

G //跳至文件的底部

         A       在光标所在行末尾插入内容

2.6 设置行号(vim命令模式下使用)

:set nu //显示行号

:set nonu //取消显示行号

         i        从当前光标前插入内容

2.7 复制、粘贴(vim命令模式下使用)

yy //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务

nyy //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务

yw //复制从光标开始到词尾的字符

nyw //复制从光标开始的n个单词

y^ //复制从光标到行首的内容

y$ //复制从光标到行尾的内容

p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴

P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴

         I        在光标所在行行首插入内容

2.8 替换(vim命令模式下使用)

:s/old/new//用new替换行中首次出现的old

:s/old/new/g //用new替换行中所有的old

:n,m s/old/new/g //用new替换从n到m行里所有的old

:%s/old/new/g //用new替换当前文件里所有的old

         o      在当前光标下插入空行

2.9 编辑其他文件

:e otherfilename //编辑文件名为otherfilename的文件

         O      在当前光标上插入空行

2.10 修改文件格式

:set fileformat=unix //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M

         插入模式-->命令模式   esc

2.11 查看当前行信息(vim命令模式下使用)

ctrl+g

         命令模式-->扩展模式   :、?、/

2.10 跳转到制定行(vim命令模式下使用)

number + shift + g

如果没有输入number则跳转到末尾。1+shit+g行首。

         扩展模式-->命令模式   esc

2.11vim 取消 查找 高亮

:set hlsearch "打开高亮搜索

:set nohlsearch "关闭高亮搜索

:nohl "只取消掉当前的搜索高亮

vim的打开与退出:

         vim file 若file存在则打开file,若file不存在则新建file

命令模式光标跳转:

         字间跳转:

                   h: 左 、 l: 右 、 j: 下 、 k: 上 (支持上下左右键)

         单词间跳转:

                   w :下一个单词的词首

                   e :当前或下一单词的词尾

                   b :当前或前一个单词的词首

         行内的跳转:

                   Home  ^       将光标跳转到本行的行首

                   End   $          将光标跳转到本行的行尾

                   0                          跳转到绝对行首

         行间的跳转: (#代表任意数字)

                   1G=gg      跳转到文件的首行

                   G                跳转到文件的尾行

                   #G             跳转到文件的#行(命令模式)

                   :#  跳转到文件的#行(末行模式)

    句间移动:

                   ) :下一句 ( :上一句

         段落间移动:

                   }: 下一段 {:上一段

         当前页跳转:

                   H:页首、 M:页中、 L:页低

         翻页移动:

                   PgDn  Ctrl+f 向下翻一页

                   PgUp  Ctrl+b 向上翻一页

扩展模式基本操作:

         :q      退出

         :q!   强制退出

         :w     保存

         :wq  保存退出 = ZZ = :x

         :X      加密

         :wq!   强制保存退出

         :! 命令    在vim中执行外面命令

         :e file        编辑file

         :w file       将当前文件另存为file

         :r file         读入file文件的内容

$1$yyzOv8eO$a0q8BUF80SGcJTy8hx0hy/


:r!openssl passwd -1     ##扩展模式使用外面命令生成加密字符串读入到文件中

命令模式字符编辑:

         x   删除光标处的字符;

         #x  删除光标处起始的# 个字符

         xp  交换光标所在处的字符及其后面字符的位置

         ~   转换大小写

         r   替换光标所在处的字符

    R  进入替换模式

         d   删除命令,可结合光标跳转字符,实现范围删除;

         d$  删除到行尾

         d^  删除到非空行首

         d0  删除到行首

         dd  删除光标所在行

         #dd 删除#行

    dG  删到尾行

    dgg 删到首行

         yy     复制当前光标所在行,(支持y$、y0、y^等)

         #yy   复制当前光标向下#行

         p       粘贴

         c      修改,(支持y$、y0、y^等)

         J        合并当前行和下一行

         u       取消最近一次的操作,能多次使用

         U      取消当前行所有的操作

         ctrl+r        对使用u命令撤销操作进行恢复

         .        重复前一个操作

         n.      重复前一个操作n次

扩展模式地址定界:

         :2,+3            表示2到5行

         :.                      点表示当前行

         :$                    表示最后一行

         :%                   表示全文,相当于1,$

         /p1,/p2              第一次被p1匹配到的行到第一次被p2匹配到的行

扩展模式字符串查找:

         /world      从上向下查找world

         ?world 从下向上查找world

         n       定位下一个匹配的字串

         N      定位上一个匹配的字串 

扩展模式字符串替换:

         :s/old/new                将当前行中查找到的第一个字符“old” 串替换为“new”

         :s/old/new/g             将当前行中查找到的所有字符串“old” 替换为“new”

         :#,#s/old/new/g        在行号“#,#”范围内替换所有的字符串“old”为“new”

         :%s/old/new/g           在整个文件范围内替换所有的字符串“old”为“new”

         :s/old/new/c            在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

    :%s/^s*//g    删除行首空格

    :g/^$/d      删除空行

    :5,10s/^/#/g   在5到10行行首插入#号注释 

可视话模式:

  允许选择的文本块,可代替鼠标。突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等

    v面向字符

    V面向行
    ctrl-v 面向块

多文件模式:

         vim file1 file2 file3 ...

         :next  下一个

         :prev  前一个

         :first  第一个

         :last  最后一个

         :wall  保存所有

         :qall  退出所有

         :wqall

多文件窗口:

         vim -o file1 file2 ...

                   -o    水平分割

                   -O    垂直分割

         窗口间切换:ctrl+w

单文件窗口:

         Ctrl+w,s: split,  水平分割

         Ctrl+w,v: vertical,  垂直分割

         ctrl+w,q :取消相邻窗口

         ctrl+w,o: 取消全部窗口

         : wqall 退出

定制vim工作特性:

         配置文件:

                   全局:/etc/vimrc

                   个人:~/.vimrc

1、行号:

         永久修改:

                   在/root/.vimrc文件中添加

                            set nu

                            :set nonu 去掉行号

         临时显示行号:(扩展模式)

                   :set nu               显示行号

                   :set nonu 不显示行号

2、括号成对匹配:

         匹配:set sm

         取消:set nosm

3、自动缩进:

         启用:set ai

         禁用:set noai

4、高亮搜索:

         启用:set hlsearch

         禁用:set nohlsearch

5、语法高亮:

         启用:syntax on

         禁用:syntax off

6、忽略字符的大小写

         启用:set ic

         不忽略:set noic

7、文件格式:

         启用: fileformat=unix

         不忽略:  fileformat=dos

8、设置文本宽度

         :set textwidth=65 (vim only)

         :set wrapmargin=15

 vim的寄存器:

  有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。

   有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享。

 9159金沙官网 2

2.12 滚屏

ctrl+ud 向上下滚动半屏

ctrl+ey 向上下滚动一行

ctrl+bf 向上下滚动一屏

2.13移动

b、3b、w、3w:向前后移动几个单词,标点也算一个单词。相应的大写状态为不含标点,即只把空格和换行符作为单词间隔符。

$(shift+4):移动到行尾 3$:移动到3行后的行尾

0 行首有空格

^(shift+6):移动到行首,

+:移到下一行的行首

-: 移到上一行的行首

2.14折叠

命令小结
zc 关闭当前打开的折叠
zo 打开当前的折叠
zm 关闭所有折叠
zM 关闭所有折叠及其嵌套的折叠
zr 打开所有折叠
zR 打开所有折叠及其嵌套的折叠
zd 删除当前折叠
zE 删除所有折叠
zj 移动至下一个折叠
zk 移动至上一个折叠
zn 禁用折叠
zN 启用折叠

2.15 函数折叠(命令模式)

zf

shift+%

2.16 代码格式化

#格式化全文

gg=G

#自动缩进当前行

==

#格式化当前光标接下来的10行

10=j

#格式化当前光标向上的10行

10=k

#格式化选定的行

v(向上下选择)

=

#命令解释

gg #跳转到文件首行

= #应用缩进格式

G #直到文件结束

2.17在函数中移动光标(命令模式)

[{ 转到上一个位于第一列的"{"

}]9159金沙官网 , 转到下一个位于第一列的"{"

{ 转到上一个空行

} 转到下一个空行

gd 转到当前光标所指的局部变量的定义

* 转到当前光标所指的单词下一次出现的地方

# 转到当前光标所指的单词上一次出现的地方

的基本用法讲解,ubuntuvim 1 简介 vim是文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛...

本文由9159.com发布于操作系统,转载请注明出处:三种主要模式,插入模式、命令模式、低行模式

关键词:

上一篇:没有了
下一篇:没有了