(一定要在英文输入法的状态下才有效)
vi:实际上linux 上的 vi 不是真正的 vi,而是 vim;纯的 vi只在某些 unix 系统上还存在纯 的vi里面不支持退格键盘了,当按退格键盘以后,不是删除一个字符,而是切换到命令模式,所以后续的操作都受到影响,如果用纯的vi删除字符,要先切换到命令模式,然后定位到字符,再按下X才行

vi 三种模式
命令模式(command mode)默认打开时;
任何时候,不管用户处于何种模式,按下 ECS 键盘即可时入命令模式。
在该模式下,用户可以输入 vi 命令,管理自己的文档。此时键盘上的任何字符都被当作编辑命令来解释!用方向键盘移动光标进入文字编辑的定位
0(数字)      光标移到行首
h           光标左移一格
l          光标右移一格
j          光标下移一行
k          光标上移一行
PageDn     向下移动一页
PageUp     向上移动一页
dd         删除整行文字
d+方向键盘 删除文字
S          删除光标所在的行内容
全选命令:ggVG
gg:让光标移到行首行,在vim下有效,在vi中无效
V:是进入Visual(可视化)模式
G:光标称到最后一行
接下就就可以进行其它的操作了:
d 删除选中内容
y 复制选中内容到 0 号寄存器
"+y" 复制选中内容+寄存器,也就是系统的剪贴板,供其它程序使用

输入模式(input mode)

在命令模式下输入命令 i 或者 附加命令 a 或者打开命令 o
,或者修改命令 c,或者取代命令 r 或者 替换命令s都可以进入输入模式,在该模式下,用户输入的任何字符都被 vi 当作文件保护起来,并将其显示在屏幕上。在该模式下,按 esc 键盘可以进入命令模式

末行模式( last line mode)

末行模式主要是进行一些文字编辑辅助功能,比如字串搜索,替换,保存文件操作等,在命令模式下,用户按下":"即可进入该模式;
:q   返回 shell 命令,但不保存

:w  保存修改,但不退出 vi
:q!  强制退出 vi 程序,不保存
:wq  保存修改并退出程序
:set nu 设置显示行号

:set nonu 设置隐藏行号
 ===============
在 vi 中不能使用方向键和退格键的问题
在 vi 命令模式下使用  ": set nocompatible" 设置vi 不使用兼容模式

进入 vi 命令
vi filename 打开文件或新建文件,并将光标置于行首
vi +n filename 打开文件,并将光标置于第 n 行首
vi + filename 打开文件,并将光标置于最后一行首
vi +/pattern file 打开文件,并将光标置于第一个与 pattern 匹配相处的行首

定位到指定的行 直接输入数字即可
搜索与替换命令
 /pattern  从光标开始处向文件尾搜索 pattern
 ?pattern  从光标开始处向文件首搜索 pattern
输入 n或者 N,继续往前或往后查找相关的匹配内容

如果要忽略大小写  /patern\c      或者   ?patern\c 即可

复制与粘贴

命令模式中:把光标话要复制的行中,按下 yy 即可把整行复制,然后把光标移动要粘贴的地方,然后按下 p 即可粘贴

复制和粘贴指定的内容:
命令模式下:
把光标定位在要复制的内容开头或结尾,然后按下v 键,用键盘方向键盘选择相就的内容模块,然后按下 y 即复制成功,把光标定位在要粘贴的地方,按下 P 即可

剪切和粘贴指定的内容:
命令模式下:
把光标定位在要剪切的内容开头或结尾,然后按下v 键,用键盘方向键盘选择相就的内容模块,然后按下 d 即剪切成功,把光标定位在要粘贴的地方,按下 P 即可

撤消,反撤消

命令模式下

u:撤消,连续按,连续撤消,底下有提示

ctrl+r:反撤消,连续按,连续反撤消

用vi 清空所在的文件内容
命令模式下:
:1,$d

撤消命令:
在命令模式下 u

恢复刚才的撤消动作:
命令模式下:
ctrl + r

修改文件的编码格式:
命令模式下:
:set encoding=utf-8 (utf-8格式)
:set termencoding=utf-8 (utf-8格式)
:set fileencoding=utf-8 (utf-8格式)

:set fileencoding=gb2312
:set fileencoding=gbk

linux vim 基本操作的更多相关文章

  1. linux vim基本操作

    vim 是一款功能强大的文本编辑器, 默认有三种模式: 命令模式, 插入模式, 编辑模式, 使用# vim file 打开一个文件时,默认进入命令模式, 不同模式直接的切换如下    a. 命令模式切 ...

  2. linux的基本操作与常见命令

    linux的基本操作与常见命令: jdk的安装: 步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的) 查看虚拟机版本:sudo uname --m i686 //表示是3 ...

  3. 经典 Linux & VIM 教程

    简明 Vim 练级攻略: http://coolshell.cn/articles/5426.html VIM快捷键: http://coolshell.cn/wp-content/uploads/2 ...

  4. linux VIM基本命令

    linux VIM命令: vim 在命令行中输入vim,进入vim编辑器 Esc 退出i(插入)命令进行其他命令使用 :sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续 ...

  5. linux vim vi编辑时撤销输入操作

    linux vim vi编辑时撤销输入操作 1,esc退出输入状态 2,u 撤销上次操作 3,ctrl+r 恢复撤销

  6. Vim 基本操作

    Vim 基本操作 vim的模式 命令模式 2. 编辑模式 3. 尾行模式 编辑 i : 插入 光标所在位置 a : 插入 光标所在位置的下一个位置 o : 插入 光标所在位置的下一行插入新行 O : ...

  7. 【学习笔记】Linux基础(二):Linux的基本操作

    二.Linux的基本操作 0.正确的开关机操作 开机和登陆: 安全起见,一般不使用最高权限的root账户登入系统,光立系统时再使用 登录时为login程序提供账户名和密码即可,密码不会被显示,登陆后显 ...

  8. linux的基本操作(文本编辑工具vim)

    文本编辑工具vim * 命令模式:在一般模式下,输入”:”或者”/”即可进入命令模式.在该模式下,你可以搜索某个字符或者字符串,也可以保存.替换.退出.显示行号等等. 下面笔者教你如何在一个空白文档中 ...

  9. Linux下vim基本操作和清空文件内容的常用方法

    以前都是用的很土的办法,大概有以下几种.1.直接删除,创建一个新的同名文件(这种方法的弊端是有可能这个文件带着权限或者是属性,那么你新建这个文件后有可能会导致权限不正确或者丢失属性).2.使用vim编 ...

随机推荐

  1. Linux程序设计(二)shell程序设计

    1. 管道和重定向 文件描述符0:一个程序的标准输入 文件描述符1:标准输出 文件描述符2:标准错误输出 >操作符:把标准输出重定向到一个文件. >>操作符:将输出内容附加到一个文件 ...

  2. Java 字符转码之UTF-8转为GBK/GB2312

    java跟python类似的做法,在java中字符串的编码是java修改过的一种Unicode编码,所以看到java中的字符串,心理要默念这个东西是java修改过的一种Unicode编码的编码. pa ...

  3. 异常-JAVA

    #异常   ##1.异常处理概述   1.异常时程序在执行过程中所产生的问题.导致异常的原因的有很多种,包括:   1. 用户输入了无效数据   2. 找不到一个需要打开的文件   3. 在通讯过程中 ...

  4. codeigniter nginx rewrite规则配置【转】

    转自:http://www.nginx.cn/1134.html nginx如何配置才能支持codeigniter ? 1. codeigniter的url美化去掉index.php   1 2 3 ...

  5. servletConfig对象

    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数后,web容器在创建servlet实例对象 ...

  6. Servlet文件上传(ServletFIleUpload,DiskFileItemFactory,FileItem)

    1:我们学的是表单文件上传,就是在一个FORM中提交相应的信息,和之前我们的提交的注册信息之类的表单是不同的,所以要先改变一下FORM的属性,enctype="multipart/form- ...

  7. JSP&Servlet学习手册

    JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...

  8. [Java 8] (5) 使用Lambda表达式进行设计

    使用Lambda表达式进行设计 在前面的几篇文章中,我们已经见识到了Lambda表达式是怎样让代码变的更加紧凑和简洁的. 这一篇文章主要会介绍Lambda表达式怎样改变程序的设计.怎样让程序变的更加轻 ...

  9. <s:form action="login"...与<s:form action = "login.action".的区别

    1.<s:form action="login" namespace="/login"> 它表示的是<form id="login& ...

  10. DNS的查找机制、中文扩展,及其对手机扫描商标名称的支持

    DNS的查找机制.中文扩展.及其对手机扫描商标名称的支持 DNS的查找机制 当DNS查找主机时,它首先在本域里查找,假设找不到则交给更上一级的域查找,直至顶级的域. 因此,假设计算机在北大域名(pku ...