vi/vim

是Linux命令行界面下的文字编辑器,几乎所有的Linux系统都安装了vi,只要学会了vi这个编辑工具,就可以在任何Linux系统上使用它。而vim是vi命令的增强版(Vi IMproved),与vi编辑器完全兼容,此外还有很多增强功能,例如用不同颜色高亮显示代码。因此,如果系统有vim命令,那么建议大家就使用vim编辑文本。

vim的三种模式

一般来说,vim可分为三种模式:普通模式、编辑模式、命令模式。这三种模式的作用分别如下。
(1)普通模式
用vim命令打开一个文件,默认的状态就是普通模式。在这个模式中,不能进行编辑输入操作,但可以按“上下左右”键来移动光标,也可以执行一些操作命令进行如删除、复制、粘贴等之类的工作。
(2)编辑模式
在普通模式下不能进行编辑输入操作,只有按下“i,I,o,O,a,A,r,R,s,S”(其中“I”最常用)等字母进入编辑模式之后才可以执行录人文字等编辑操作。看文件是否处于编辑模式状态有一个重要的特征,那就是在窗口的左下角要有插入的标记“--INSERT--”或“--插入--”
(3)命令模式
在普通模式下,输入“:”或“/”或“?”时,光标会自动定位在那一行,在这个模式中,可以执行保存、退出、搜索、替换、显示行号等相关操作。

vim命令的参数选项及说明

普通模式:移动光标的操作

G或(shift+g)    将光标移动到文件的最后一行
gg                将光标移动到文件的第一行,等价于1gg或1G
0                 数字0,将光标从所在位置移动到当前行的开头
$                 从光标所在位置将光标移动到当前行的结尾
n<Enter>          n为数字,<Enter>为回车键,将光标从当前位置向下移动n行
ngg               n为数字,移动到文件的第n行,如11gg可移动到第11行,可配合“:setnu”查看,同nG
H                 光标移动到当前窗口最上方的那一行
M                 光标移动到当前窗口中间的那一行
L                 光标移动到当前窗口最下方的那一行
h或()           光标向左移动一个字符
j或()            光标向下移动一个字符
k或()            光标向上移动一个字符
l或(→)           光标向右移动一个字符

普通模式:搜索与替换操作

/lewen        从光标位置开始,向下寻找名为lewen的字符串
?lewen       从光标位置开始,向上寻找名为lewen的字符串
n             从光标位置开始,向下重复前一个搜索的动作
N             从光标位置开始,向上重复前一个搜索的动作
:%s/A/B/g    把符合A的内容全部替换为B,斜线为分隔符,可以用@、#等替代
:n1,n2s/A/B/g    n1、n2为数字,在第n1行和n2行之间寻找A,用B替换

普通模式:复制、粘贴、删除等操作

yy        复制光标所在的当前行
nyy       n为数字,复制光标开始向下共n行
p/P       p将已复制的数据粘贴到光标的下一行,P则为粘贴到光标的上一行
dd        删除光标所在的当前行
ndd       n为数字,删除从光标开始向下共n行
u         恢复(回滚)前一个执行过的操作
.         点号。重复前一个执行过的动作
x         向后删除字符
X         向前翻除字符
d1G       删除当前行至第一行
dG        删除当前行至最后一行
d0        删除当前光标文本至行首
d$        删除当前光标文本至行尾

进入编辑模式命令

i    在当前光标所在处插入文字
a    在当前光标所在的下一个字符处插入文字
I    在当前所在行行首的第一个非空格符处开始插入文字,和A相反
A    在当前所在行行尾的最后一个字符处开始插入文字,和l相反
O    在当前所在行的上一行处插入新的一行
o    在当前所在行的下一行处插入新的一行
Esc  退出编辑模式,回到命令模式中

命令行模式

:wq        退出并保存
:wq!      退出并强制保存,“!”为强制的意思
:q!       强制退出,不保存
:n1,n2 w filename  n1、n2为数字,将n1行到n2行的内容保存成filename这个文件
:nl,n2 co n3       nl、n2为数字,将nl行到n2行的内容复制到n3位置下
:n1,n2 m n3        nl、n2为数字,将n1行到n2行的内容剪切至n3位置下
:!command          暂时离开vi到命令行模式下执行command的显示结果!例如:!ls /etc
:set nu            显示行号
:set nonu          与setnu相反,取消行号
:vs filename       垂直分屏显示,同时显示当前文件和filename对应文件的内容
:sp filename       水平分屏显示,同时显示当前文件和filename对应文件的内容
I + # + Esc         在可视块模式下(Ctrl+V),一次性注释所选的多行,取消注释可用“:nl,n2s/#//g”,这里的操作是一个通用的方法,#号可以换成别的操作,例如Tab键,这样就是批量缩进
Del                 在可视块模式下(Ctrl+V),一次性删除所选内容
r                   在可视块模式下(Ctrl+V),一次性替换所选内容.输入r,再输入替换成的字符

vim打开文件的方法小结

以下为vim打开文件的几种方法。
vim file:打开/新建文件,光标置于第1行行首,file为任意文件名。
vim file +n:打开文件,光标置于第n行行首,n为自然数。   #eg: vim test.txt +4
vim file +:打开文件,光标置于最后1行行首。
vim file +/pattern:将光标置于第一个与pattern匹配的字符串处,pattern为任意字符串。

3.23 vi/vim:纯文本编辑器相关推荐

  1. LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim

    LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim 几个月前, Linux 基金会发起了 LFCS (Linux 基金会认证系统管理员Linux Foundation Certified ...

  2. PyQt(Python+Qt)学习随笔:纯文本编辑器QPlainTextEdit功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QPlainTextEdit是用于纯文本的一个高级文档编辑器 ...

  3. 如何安装和使用纯文本编辑器 vi/vim

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是系列教程的第二讲,在这个部分中,我们会介绍 vi/vim 基本的文件编辑操作,帮助读者理解编辑器中的三个模式,这是 ...

  4. VI全屏文本编辑器的命令总结

    vi:Visual Interface, vim:VI IMproved 模式化编辑器: 编辑模式(命令模式) 末行模式 插入模式(输入模式) 替换模式 可视化模式 一.vi/vim的打开方式: 1. ...

  5. java编辑简单文本编辑器_简单的Java纯文本编辑器

    gmllinux:这是我写的一个类,仅供参考,希望大家批评指正|@|//该类只能创建一男一女两个对象|@|class Person{|@||@|      private String name;|@ ...

  6. Linux文本编辑器——vim

    Linux文本编辑器   ed  pico  emacs  nano  gVim  vim  vi   vim 是文本编辑器  不是文字处理工具(office  liboffice  wps)  你的 ...

  7. vi / vim 编辑器 使用手册

    vi/vim 编辑器 使用详解 vi /vim 介绍 vi /vim 命令及操作方法 vi /vim 介绍 文本编辑器:作用是创建或修改文本文件,维护Linux系统中的各种配置文件. 在Linux中最 ...

  8. vim复制单个字符_vim文本编辑器——删除、复制、剪切、更改某一个字符、替换、撤销、关键字搜索...

    1.删除: (1)删除光标所在处的字符: 如上图所示:点击一次x键只能删除一个字符. (2)删除光标所在处后的n个字符(nx): 删除前: 输入6x: (3)删除光标所在的行(dd): 删除前: 输入 ...

  9. vi vim 插入 删除 修改 文本

    2019独角兽企业重金招聘Python工程师标准>>> Abstract: 1) 插入文本: 2)修改文本: 3)删除文本: vi & vim 有编译模式与命令模式,下述光标 ...

最新文章

  1. SQLDMO- (数据备份与恢复篇)
  2. [转]JS脚本抢腾讯云学生1元代金券
  3. 【好记性不如烂笔头】之小程序要点记录
  4. android webview卡顿检测_Android webview隐藏后跳转新页面input输入卡顿与白屏渲染慢的问题说明及修复方案...
  5. 【解决问题】idea启动本地tomcat访问localhost:8080报404错误
  6. 华为云 mysql 主备_安全性能两手抓,华为云MySQL“非双一特性”助力企业业务稳定高效运行...
  7. nuxt 全局css_解决nuxt 自定义全局方法,全局属性,全局变量的问题
  8. SVG.属性(各种)
  9. 程序猿代码面试指南 PDF
  10. Java——学生管理系统
  11. DevExpress Office文件API打印 PDF 文档
  12. dos命令大全 基础命令+网络的常用命令
  13. 当年的毒王熊猫烧香,现在怎么样了?
  14. 汉字转为16进制的unicode
  15. 高等数学:第十一章 无穷级数(1)常数项技术的概念、性质、审敛法、幂级数
  16. 物联网开发 7 旗点云物联网云平台
  17. 自习室图书馆座位预约小程序 开题报告(基于微信小程序毕业设计题目选题课题)
  18. Nodejs下载与安装(官网选择)
  19. java 线程耗尽_关于线程耗尽导致请求超时系统假死的思考
  20. 三十六 我在软件园的那些日子里

热门文章

  1. java怎么捕捉除数异常_Java异常的捕获及处理---小总结
  2. 中柏平板触摸驱动_一文总览2019年最新最全的工业平板电脑定制化服务
  3. 前端怎么使用jsessionid_成都Web前端是干什么的?新手怎么入门
  4. python的for语句有几种写法_Python if 和 for 的多种写法
  5. 打包文档_苏教版小学数学16年级全十二册教案Word文档打包下载
  6. 华为 android9 信任app_搭载麒麟810处理器,华为Nova5i Pro的AI跑分创新高
  7. 庄家如何用计算机下单,新人必看!庄家透露坐庄下单要诀
  8. aop执行跳过某个方法_简谈前端开发中的AOP(一) -- 前端AOP的实现思路
  9. 统计、可视化两不误,多达19种可视化技能你一定要掌握~~
  10. Python 的 heapq 模块源码分析