vi 编辑器

man vim

一 打开文件,定义光标

vi +# test       打开文件,定位于#行。
vi + test        打开test文件,定位于最后一行。
vi +/pattern test  打开定位到第一次查到的pattern处。

二 关闭文件

1 末行模式下关闭文件

w    保存
q    不保存退出
wq    保存并退出
q!    不保存退出
w!    强行保存
:wq=:x

2 编辑模式下退出
ZZ      保存并退出

三 移动光标(编辑模式下)

1 逐字符移动:
h:向左移动
l:向右移动
j:向上移动
k:向下移动

可以加数字:
#h :移动#个字符

2 逐个单词移动

w :移到下一个单词的词首
e:跳至当前或者下一个单词的词尾
b:跳到当前或者前一个单词的词首

#w  :移动到第#个单词的词首

3 以行为单位,行内跳转

0:绝对行首
^:行首的第一个空白字符
$:绝地行尾

4 行间跳转
#G:跳转到第#行
G:最后一行

四:翻平
Ctrl+f 向下翻屏
Ctrl+b 向上翻屏
ctrl+d 向下翻屏
Ctrl+u 向上翻屏

五:删除单个字符

x:删除光标所在处的单个字符
#x:删除光标所在处的及向后的#个字符

六:删除命令
d命令和跳转命令结合使用

#dw #da #db

dd
#dd:删除包括当前光标所在内的#行

末行模式下:  start,end dd
当前行到100行
:.,100dd

.:表示当前行
$:最后一行
+#:向下的#行

七:粘贴命令

p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,入股复制或者删除的内容为非整行,粘贴至光标所在字符后面

P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,入股复制或者删除的内容为非整行,粘贴至光标所在字符前面

八:复制命令

y  用法同d命令

九:修改:先删除内容,在转换为输入模式

c:用法同d命令

十:替换r
R:替换模式

十一:撤销
u:撤销前一次的编辑操作
   连续u命令撤销50次操作
#u:直接撤销最近#次编辑操作
撤销最近一次撤销操作:Ctrl+r

十二:重复前一次编辑操作
.
十三:可视化模式
V:按矩形块选取
v:按字符选取

利用v模式,我们可以很方便的处理多行文本,比如在Bash脚本中一次性注释多行文本。可以如下操作:

1 ctrl+v 进入列编辑模式
2 向下或向上移动光标
3 把需要注释的行的开头标记起来
4 然后按大写的I
5 再插入注释符,比如"#"
6 再按Esc,就会全部注释了

如果想一次性的删除多行注释标记符,则可以这样做:

1 ctrl+v 进入列编辑模式
2 向下或向上移动光标,选择要删除的“#”
3 按d键即可删除

十四:查找替换
n
N
:/he   查找he,按n

十五:查找并替换
在末行模式下使用s命令
:ADDR1,ADDR2s@PATTERN@string@gi

从当前行到末两行将he改成HE
:.$-1 s/he/HE/g

在末行模式下
①显示或取消行号
        set nu(set number):显示行号
        set nonu:取消显示行号
②显示忽略或区分字符大小写
        set ic (set ignorecase):忽略大小写
        set noignorecase:区分大小写
③设定自动缩进
       set ai(set autoindent):自动缩进
        set noai:取消自动缩进
④查找到的文本高亮或取消高亮显示
    set hlsearch:高亮显示搜索到的文本
    set nohlsearch:取消高亮显示搜索到的文本
⑤语法高亮
    syntax on:打开语法高亮显示
    syntax off:关闭语法高亮显示

复制代码

vim配置文件

全局vim配置文件:/etc/vimrc
个人vim配置文件:~/.vimrc
[root@libaoliang ~]# echo "set nu" >> /root/.vimrc  # root用户用vim打开文件时,显示行号。

vim 模式:

编辑模式
输入模式
末行模式

输入模式
i     :光标所在字符的前面,转换为输入模式
a    :光标所在字符的后面,转换为输入模式
o    :光标所在字符下面一行,转换为输入模式

I    :转换为输入模式后,在当前光标的行首
A    : 转换为输入模式后,在当前光标的行尾
O    : 转换为输入模式后,在当前光标的上一行

输入模式--------->编辑模式
ESC

编辑模式--------->末行
:
     
删除第九行:    在末行模式下输入9d
删除十到二十行:在末行模式下输入10,20d
显示行号:    set nu

在末行模式下,查看etc下的password:        ! cat /etc/passwd 然后回车

末行模式------->编辑模式
ESC 多少用几次

001在普通模式下,输入:进入命令模式完成替换
:s/root/admin         将光标当前行出现的第一个root替换为admin,没有则不替换
:s/root/admin/g      将光标当前行中的所有的root替换为admin

:3,5 s/sbin/bin/g     将第三行至第五行之间的所有sbin替换成bin

:% s/nologin/fault/g     将所有行的nologin都替换成fault

002指向shell命令

执行shell命令并不想退出编辑器,通过:{命令}来实现,

例如:查看当前目录下文件名称

:!ls     执行完后返回vim编辑器

Linux基础之vi编辑器(二)的更多相关文章

  1. 【Linux基础】VI 编辑器基本使用方法

    vi编辑器是所有Unix及Linux系统下标准的编辑器.对Unix及Linux系统的任何版本,vi编辑器是完全相同的,它是Linux中最基本的文本编辑器. 第一章vi的三种模式 第二章vi文本编辑器 ...

  2. linux基础(Vi编辑器)

    整理的linux vi编辑器命令 Vi编辑器,进入方式,输入vi file即可进入编辑模式 1.vi模式(Linux严格区分大小写) Vi所学到的几种模式 模式 主要用途 相应操作 对应命令 普通模式 ...

  3. Linux——基础之vi编辑器,编辑器之神!

    VI编辑器是什么? 我们学了怎么多的命令,都是为了我们的linux系统和远程操作的方便,那么我们现在怎么,编辑服务器上的文件和软件呢? 换句话说,就是我们如何通过命令行去完成文本和代码的编写,和系统的 ...

  4. linux vim,vi编辑器的基础

    在之前我也不知道为什么要学vim和vi编辑器,仅仅是听过别人说这个对与linux非常重要. 先说一下为什么要学习这个编辑器.个人的看书理解. 系统管理员的重要工作就是參与与设置某些重要软件的配置文件, ...

  5. linux操作系统3 vi编辑器

    知识内容: 1.Linux基础命令复习 2.vi模式和基本操作 3.vi常用快捷键 一.Linux基础命令复习 目录(文件夹)操作 cd 进入目录 (tab自动补全) pwd 查看当前目录 mkdir ...

  6. Linux学习之一--VI编辑器的基本使用

    vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...

  7. linux系统之-vi编辑器

    在linux系统使用中,掌握熟练的vi编辑器,可以提高linux工作效率.那么vi编辑器的使用方法有哪些呢? vi编辑器可在绝大部分linux发行版中使用. Vi编辑器的作用:创建或修改文件:维护li ...

  8. Linux下的vi编辑器与gcc工具的使用

    最近在网上找了些视频,自学了一点Linux环境下,C编程的方法. 注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的. vi编辑器有3种模式,命令行模式,插入模式,底行模式. 如果 ...

  9. Linux系统下vi编辑器的一些简单使用操作

    Linux系统安装vi编辑器 打开终端,输入: sudo apt install vim 然后输入Y等待安装即可 Linux系统下使用vi编辑器的使用 安装好vim后,终端中输入vim即可进入vim编 ...

随机推荐

  1. 通过表单展示不一样的页面(input对象)

    表单中包含不一样的样式,不同功能的提交数据的方式.在许多页面中,浏览者不经意间已经不断在使用表单的功能,如留言,设置自己的密码或者是复选框,下拉列表等. input对象下的多种表单表现形式: 通常在页 ...

  2. python关于文件的一些记录

    1.文件打开: file("data.txt")或open("data.txt")注意不要漏了文件的后缀.(不加参数时,file为你默认为'r',reading ...

  3. HAL之定时器

    一首先得对定时器的时钟与系统时钟的关系搞清楚,基本定时器的时钟来自APB1最大36MHZ.(定时器倍频值为1) 二 在STM32CubeMX中打开外设功能,时钟源选择内部:然后在配置定时器3中的参数设 ...

  4. python_9(模块补充)

    第1章 re模块补充 1.1 贪婪匹配:回溯算法 1.2 .*?的用法 1.3 例:分组<name>取值 1.4 匹配整数删除小数 1.5 正则测试地址 第2章 重点模块 2.1 hash ...

  5. Suricata的Reputation

    见官网 https://suricata.readthedocs.io/en/latest/reputation/index.html Docs » 9. Reputation Edit on Git ...

  6. CentOS6.5下安装Redis2.8.6和phpredis2.2.4扩展

    一.版本说明 CentOS版本 [plain]view plaincopyprint? [root@localhost ~]# uname Linux [root@localhost ~]# unam ...

  7. 解决Android 打包为apk文件时已设置签名,在OPPO手机上安装时却出现“未设置签名”的错误

    解决办法:

  8. 洛谷 P1216 [USACO1.5]数字三角形 Number Triangles(水题日常)

    题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大.每一步可以走到左下方的点也可以到达右下方的点. 7 3 8 8 1 0 2 7 4 4 4 5 ...

  9. Windows程序设计1(工具、编码、窗口)

    一.几个常用小工具: 1. 编译器:CL.EXE   将源文件转变为目标文件(汇编语言). CL.EXE  /c  xxx.c  或   xx.cpp cl.exe  -? 显示cl帮助 cl.exe ...

  10. Java随机产生中文昵称

    有时候我们注册一个网站第一次登陆系统会产生一个随机昵称供用户选择,在项目测试阶段遇到了这个问题,因为注册时没有让用户填写昵称,于是找了两种产生随机中文昵称的方法: 代码如下 package com.u ...