关于vim的基础知识

一、基础知识

Vim最令人混淆的特征之一是她拥有3种模式.

1.  插入模式: 输入文本

2.  命令模式:执行命令. 也称为正常模式.

3.  Ex模式: 执行冒号 命令

 

插入模式并不是缺省的模式,您必须按下i来进入插入模式,在屏幕上输入一些文字。按下按钮将从插入模式转到命令模式。命令模式用于移动和操纵文本,有时以非常有趣的方式进行。Ex模式用于执行冒号命令,比如保存,查找/替换以及配置vim等。欲保存文本,您只需要在正常模式下输入:进入Ex模式并输入:wfilename。退出vim请执行冒号命令:q.。总结如下:

vim (启动vim)

i (进入插入模式)

<输入文本>

(回到命令模式)

:wfilename (保存文件为'filename')

:q (退出vim)

vimfilename (打开您刚才在vim中保存的文件)

 

请记住,最好的学习vim的方式是使用她.您可以通过内置的vim教程来学习vim的基本使用,只需要在终端中输入vim-tutor(在dapper中请输入vimtutor).

二、常用命令

当你进入vi 时,会首先进入命令方式(同时也是编辑方式)。

按下I就进入插入方式,用户输入的可视字符都添加到文件中,显示在屏幕上。

按下ESC就可以回到命令状态(同时也是编辑方式)。

编辑方式和命令方式类似,都是要输入命令,

但它的命令不要以:开始,它直接接受键盘输入的单字符或组合字符命令,

例如直接按下u 就表示取消上一次对文件的修改,相当于WINDOWS 下的Undo 操作。

编译方式下有一些命令是要以/开始的,

例如查找字符串就是:/string 则在文件中匹配查找string 字符串。

在编辑模式下按下:就进入命令方式。

基本命令解释:

1.光标命令

k、j、h、l——上、下、左、右光标移动命令。

虽然您可以在Linux 中使用键盘右边的4 个光标键,

但是记住这4 个命令还是非常有用的。这4 个键正是右手在键盘上放置的基本位置。

nG——跳转命令。n 为行数,该命令立即使光标跳到指定行。

Ctrl+G——光标所在位置的行数和列数报告。

w、b——使光标向前或向后跳过一个单词。

2.编辑命令

i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。

cw 、dw——改变( 置换)/删除光标所在处的单词的命令 (c=change 、d=delete)。

x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。

3.查找命令

---- /string、?string——从光标所在处向后或向前查找相应的字符串的命令。

4.拷贝复制命令

---- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。

常用操作:

无论是开启新档或修改旧文件,都可以使用vi,所需指令为:

  $ vi filemane

如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。

如果文件早已存在,vi 则会显示文件的首廿四行, 用户可再用光标(cursor)上下移动。

上面是一个经vi 开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。

—指令i 在光标处插入正文

—指令I 在一行开始处插入正文

—指令a 在光标後追加正文

—指令A 在行尾追加正文

—指令o 在光标下面新开一行

—指令O 在光标上面新开一行

在插入方式下,不能打入指令,必需先按〈Esc〉键,返回命令方式。

假若户不知身处何态,也可以按〈Esc〉键,不管处於何态,都会返回命令方式。

在修改文件时,如何存档及退出指定文件都非常重要。在vi 内,行使存档或退出的指令时,

要先按冒号(:),改变为命令方式,用户就可以看见在荧幕左下方,出现冒号(:),

显示vi 已经改为指 令态,可以进行存档或退出等工作。

:q!放弃任何改动而退出vi,也就是强行退出

:w 存档

:w! 对于只读文件强行存档

:wq 存档并退出vi

:x 与wq 的工作一样

:zz 与wq 的工作一样删除正文

删除或修改正文都是利用编辑方式,故此,下面所提及的指令只需在编辑方式下,

直接键入指令即行。

—x 删除光标处字符(Character)

—nx 删除光标处後n 个字符

—nX 删除光标处前n 个字符

—ndw 删除光标处下n 个单词(word)

—dd 删除整行

—d$或D 删除由光标至该行最末

—u 恢复前一次所做的删除

当使用vi 修改正文,加减字符时,就会采用另一组在编辑方式下操作的指令。

— r char 由char 代替光标处的字符

—Rtext〈Esc〉由text 代替光标处的字符

—cwtext〈Esc〉由text 取代光标处的单词

—Ctext〈Esc〉由text 取代光标处至该行结尾处

—cc 使整行空白,但保留光标位置,让你开始打入

—如删除指令一样,在指令前打入的数,表示执行该指令多少次。

 

要检索文件,必需在编辑方式下进行。

—/str〈Return〉向前搜寻str 直至文件结尾处

—?str〈Return〉往後搜寻str 直至文件开首处

—n 同一方向上重复检索

—N 相反方向上重复检索

—vi 缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。

全程替换命令:

:%s/string1/string2/g 在整个文件中替换“string1”成“string2”。

如果要替换文件中的路径:

使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin 换成/bin。

也可以使用命令“:%s/\/usr\/bin/\/bin/g”实现,其中“\”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

 

同时编辑2 个文件,拷贝一个文件中的文本并粘贴到另一个文件中:

命令如下:

---- vi file1 file2

---- yy 在文件1 的光标处拷贝所在行

---- :n 切换到文件2(n=next) 或者按ctrl+ww,就在两个文件间切换。

---- p 在文件2 的光标所在处粘贴所拷贝的行

---- :n 切换回文件1 (Ctrl +WW 也可实现切换)

 

将文件中的某一部分修改保存到临时文件,

例如仅仅把第20~59 行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。

---- vi file

---- :20,59w /tmp/1

 

如果要在 vi 执行期间,转到shell 执行,使用惊叹号(!)执行系统指令,

例如在vi 期间,列出当前目录内容,可以键入 :

:!ls

另一方面,用户可以在主目录中创建.exrc 环境文件,用set 打入选项,

每次调用vi 时,就会读入.exrc 中的指令与设置。下面是.exrc 环境文件的实例:

set wrapmarging=8

set showmode

set autoindent

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值