ubuntu下vi的使用

ssh之后对于server的文件,我习惯用gedit,可是不好改动,于是就用vi.

1、vi的基本概念

基本上vi能够分为三种状态,各自是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),

各模式的功能区分例如以下:

  1) 命令行模式command mode)

   控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

  2) 插入模式(Insert mode)

   仅仅有在Insert mode下,才干够做文字输入,按「ESC」键可回到命令行模式。

  3) 底行模式(last line mode)

   将文件保存或退出vi,也能够设置编辑环境,如寻找字符串、列出行号......等。

  一般,我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式(command mode)。

2、vi的基本操作

a) 进入vi

在系统提示符号输入vi及文件名后,就进入vi全屏幕编辑画面:

$ vi myfile

注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才可以输入文字。

所以,先不要乱动,转换到「插入模式(Insert mode)」.

vi filename : 打开或新建文件,并将光标置于第一行首

vi +n filename : 打开文件,并将光标置于第n行首

vi + filename : 打开文件,并将光标置于最后一行首

vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename : 在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename : 打开多个文件,依次进行编辑

b) 切换至插入模式(Insert mode)编辑文件

在「命令行模式(command mode)」下按一下字母「i」就能够进入「插入模式(Insert mode)」,这时候你就能够開始输入文字了。

c) Insert 的切换

在「插入模式(Insert mode)」下,就仅仅能输入文字,将该字删除时,就要先按一下「ESC」键转到「命令行模式(command

mode)」再删除文字(或Delete)。

d) 退出vi及保存文件

在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,比如:

  : w filename     (输入 「w filename」将文章以指定的文件名称filename保存)

  : wq                  (输入「wq」,存盘并退出vi)

  : q!                      (输入q!, 不存盘强制退出vi)

  w filename:    储存正在编辑的文件为filename

  wq filename:    储存正在编辑的文件为filename,并退出vi

  q!:                             放弃全部改动,退出vi

3、命令行模式(command mode)功能键

1). 插入模式

按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置開始输入文件;

    按「a」进入插入模式后,是从眼下光标所在位置的下一个位置開始输入文字;

    按「o」进入插入模式后,是插入新的一行,从行首開始输入文字。

2). 从插入模式切换为命令行模式

按「ESC」键。

3). 移动光标

vi能够直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

  按「ctrl」+「b」:   屏幕往"后"移动一页。

  按「ctrl」+「f」:   屏幕往"前"移动一页。

  按「ctrl」+「u」:   屏幕往"后"移动半页。

按「ctrl」+「d」:   屏幕往"前"移动半页。

按数字「0」:   (注意是数字零)光标移至当前行首。

按「G」:   移动到文章的最后。

按「$」:    移动到光标所在行的"行尾"。

  按「^」:    移动到光标所在行的"行首"

  按「w」或W:   光标跳到下个字的开头

  按「e」或E :   光标跳到下个字的字尾

  按「b」或B :   光标回到上个字的开头

  按「#l」:      光标移到该行的第#个位置,如:5l,56l。

 space:  光标右移一个字符

 Backspace:  光标左移一个字符

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

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

 Enter :    光标下移一行

 ) :   光标移至句尾

 ( :   光标移至句首

 }:   光标移至段落开头

 {:   光标移至段落结尾

 nG:   光标移至第n行首

 n+:   光标下移n行

 n-:   光标上移n行

 n$:  光标移至第n行尾

 H :  光标移至屏幕顶行

 M :  光标移至屏幕中间行

 L :   光标移至屏幕最后行

 $:    光标移至当前行尾

4). 复制

「yw」:     将光标所在之处到字尾的字符拷贝到缓冲区中。

  「#yw」:  复制#个字到缓冲区

  「yy」:     复制光标所在行。[超经常使用]

  「#yy」:   比如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。

  「p」:       粘贴,将缓冲区内的字符贴到光标所在位置。

注意:全部与"y"有关的复制命令都必须与"p"配合才干完毕复制与粘贴功能。

   “ayy:        将复制行放入buffer a, vi提供buffer功能,可将经常使用的数据存在buffer

   “ap:         将放在buffer a的数据粘贴。

   “b3yy:     将三行数据存入buffer b。

   “b3p:     将存在buffer b的资料粘贴

5). 替换

「r」:   替换光标所在处的字符。

「R」: 替换光标所到之处的字符,直到按下「ESC」键为止。

6). 回复上一次操作

「u」:假设您误运行一个命令,能够立即按下「u」,回到上一个操作。按多次"u"能够运行多次回复。

.      : .能够反复运行上一次的指令。

7). 更改

「cw」:    更改光标所在处的字到字尾处

  「c#w」: 比如,「c3w」表示更改3个字

8). 跳至指定的行

「ctrl」+「g」  列出光标所在行的行号。

  「#G」:    比如,「15G」,表示移动光标至文章的第15行行首。

9). 删除操作(按ESC键转换回Command mode,再删除文字)

x:    每按一次删除光标所在位置的后面一个字符。[超经常使用]

#x:   比如,6x 表删除光标所在位置的后面6个字符。[经常使用]

X:   大字的X,每按一次删除光标所在位置的前面一个字符。

#X:   比如,20X 表删除光标所在位置的前面20个字符。

dd:    删除光标所在行。

[超经常使用]

#dd:   比如,6dd表删除从光标所在的该行往下数6行之文字。[经常使用]

10). 代替字符串

1,$s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串代替为replace字符串,当中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示所有代替不必确认。

%s/string/replace/c:相同会将全文的string字符串代替为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次确认是否代替。1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。

4、Last line mode下命令简单介绍

在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号就可以进入「last line mode」。

A) 列出行号

「set nu」:输入「set nu」后,会在文件里的每一行前面列出行号。

B) 跳到文件里的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

「/keyword」:   先按「/」键,再输入您想寻找的字符,假设第一次找的keyword不是您想要的,能够一直按「n」会往后寻找到您要的keyword

为止。

 「?

keyword」:   先按「?」键,再输入您想寻找的字符,假设第一次找的keyword不是您想要的,能够一直按「n」会往前寻找到您要的keyword

为止。

D) 保存文件

「w」:    在冒号输入字母「w」就能够将文件保存起来。

E) 离开vi

「q」:   按「q」就是退出,假设无法离开vi,能够在「q」后跟一个「!」强制离开vi。

「qw」:  一般建议离开时,搭配「w」一起使用,这样在退出的时候还能够保存文件。

 

   

author: wsh

email:tongzhuodenilove@163.com

ubuntu下vi的使用的更多相关文章

  1. 解决Ubuntu 下 vi编辑器不能使用方向键和退格键问题

    转自:http://blog.csdn.net/sky101010ws/article/details/51012103 使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多字母 这个问题主要是 ...

  2. Ubuntu 下 vi 输入方向键会变成 ABCD 的解决方法

    Ubuntu 下 vi 输入方向键会变成 ABCD,这是 Ubuntu 预装的是 vim tiny 版本,安装 vim full 版本即可解决. 先卸载vim-tiny: $ sudo apt-get ...

  3. ubuntu下vi不能正常使用的解决方法

    现象 ubuntu中vi在编辑状态下方向键不能用,还有回格键不能删除等我们平时习惯的一些键都不能使用. 原因 ubuntu预装的是vim tiny版本,需要的是vim full版本. 方案 $sudo ...

  4. ubuntu下vi文本后出现不正常的情况

    安装vim full版本由于Ubuntu预安装的是tiny版本,所以会导致我们在使用上的产生上述的不便.但是,我们安装了vim的full版本之后,键盘的所有键在vi下就很正常了.首先,要先卸掉旧版的v ...

  5. Ubuntu下vi编辑器不听话

    编辑文件/etc/vim/vimrc.tiny,将“compatible”改成“nocompatible”非兼容模式: 并添加一句:set backspace=2 

  6. ubuntu下vi/vim 的基本用法

    https://blog.csdn.net/weixin_37657720/article/details/80645991 :q!    不保存强制推出. :wq   保存并退出.

  7. 解决Ubuntu14.04下vi编辑器不能使用方向键和退格键问题

    参考:http://blog.sina.com.cn/s/blog_7d0c2fed01010zbi.html 系统:Ubuntu14.04 使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多 ...

  8. ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法

    ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法 转载:http://blog.csdn.net/yao_qinwei/article/details/8761777 在插入模式下,按删 ...

  9. ubuntu中vi在编辑状态下方向键不能用的解决

    ubuntu中vi在编辑状态下方向键不能用,还有回格键不能删除等,我们平时习惯的一些键都不能使用. 解决办法: 可以安装vim full版本,在full版本下键盘正常,安装好后同样使用vi命令. 安装 ...

随机推荐

  1. SCCM大致安装过程,参考前辈教程完成部署

    本安装sccm主站点服务器准备 参考:http://stephen1991.blog.51cto.com/8959108/1529864 1.  准备三台服务器 ,注:所有服务器需要安装 .net3. ...

  2. viewport 640宽的做法 针对iphone和安卓单独设置

    <!DOCTYPE html> <html lang="ch"> <head> <meta charset="utf-8&quo ...

  3. 07CSS表格

    CSS表格 表格边框 如需在 CSS 中设置表格边框,请使用 border 属性. table, th, td { border: 1px solid blue; } 折叠边框 border-coll ...

  4. No-8.循环

    01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行代码 分支 —— 根据条件判断,决定执行代码的 分支 循环 —— 让 特定代码 重复 执行 02. while ...

  5. filezilla server FTP 安装报错 "could not load TLS network. Aborting start of administration interface"

    filezilla server FTP 安装报错   "could not load TLS network. Aborting start of administration inter ...

  6. JAVA基础——设计模式之简单工厂模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂 ...

  7. js读取文本内容,支持csv.txt

    js读取文本内容,支持csv.txt <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  8. [Python3网络爬虫开发实战] 3.3-正则表达式

    本节中,我们看一下正则表达式的相关用法.正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索.替换.匹配验证都不在话下. 当然,对于爬虫来说,有了它,从HTML里提取想要 ...

  9. 查看FPM在你的机子上的平均内存占用情况

    ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n" ...

  10. 语法,if,while循环,for循环

    目录 一.语法 二.while循环 三.for循环 一.语法 if: if判断其实是在模拟人做判断.就是说如果这样干什么,如果那样干什么.对于ATM系统而言,则需要判断你的账号密码的正确性. if 条 ...