vim

功能 : 一个强大的文本编辑器
   语法格式 :vim [ 选项 ] / 路径 / 文本文件名 命令格式: vi [ 选项 ] [ 文件名 ]
   +num 打开某个文件直接跳转到 num 行
   -b 以 binary 方式打开文件 , 用于编辑二进制文件
   -R 以只读方式打开文件

一.VIM 基础使用
    vim 编辑器共有三种工作模式

command line 主要做替换 , 删除 , 复制等工作。 input mode 主要做内容编辑
last line mode 主要对文件进行编辑操作 , 如保存文件

不同模式之间的切换

二.命令模式

       在 command mode 执行操作的时候都是先要将光标移动到要 执行命令的地方然后再执行命令 ,

怎么移动光标呢 ?

   j 光标向下移动
k 光标向上移动
h 光标向左移动
l 光标向右移动

如果你觉得记这些不太方便也可以用小键盘上的←↑→↓来代替 G(shift+g) 直接移动到文件末尾

 gg 直接移动到文件头
0( 数字键 ) 直接移动到行头
^(Shift + 6) 直接到行头
$ 直接移动到行末
PageUp 向上翻一页
PageDown 向下翻一页
H 将光标移动到当前屏幕的最上 M 将光标移动到当前屏幕的中间 L 将光标移动到当前屏幕的最下
zz 将光标当前行为基准放在屏幕中间 x 删除光标所在位置的字符
X 删除光标所在位置之前的一个字符 D 从光标开始到行末全部删除
dw 删除光标后的一个单词 dd 删除光标所在的一行
db 删除光标所在的前一个单词
dG 删除光标所在行到文件末尾的所有内容 dgg 删除光标所在行到文件头的所有内容 dk 删除光标所在行和上面一行
dj 删除光标所在行和下面一行
u 撤销刚才的操作 , 可以连续使用 U 撤销一行中的所有操作
ctrl + r 取消撤销的内容
ctrl + g 显示当前编辑文件的信息 . 比如文 件名 , 总共的 行数 , 当前在总数中的百分比等信息
% 移动到配对的符号如当前光标在 ( 键入%可以自动移动到配对的 ) 同样适用于 [ ] 和 { } 这些功能 在编程的时候特别有用
. 点 , 这个键的功能是重复最后一次执行的命令
g~ 这个功能非常有意思 ,g~ 能将当前行的大小写转换
J 这个键的功能是将光标当前行和下一行合并 注 : 这 个键不能加上数字
r 替换光标所在的字符
R 连续替换
y 复制 , 如 yw 复制一个单词 yy 复制一行
p 粘贴 ( 光标后 ) P 粘贴 ( 光标前 )

VIM 基础使用在命令行中有一个 v 键: 这个键是用来代替鼠标用的。 v 的意思是‘可视’的意思 , 按过 v 键以后再使用方向键便可以象鼠标那样选中文字 , 然后可以对 选中的文字进行操作。
大写 V 键:这个键是用来选择某个行
ctrl + v 来选择某个列

(1)VIM的查找
    在命令模式中 按 / 进入搜索模式 这里的搜索使用的是正则表达式 , 如果要查找 .*[]^%/\?~$ 这些 具有特殊含义的字符需要在这些字符前加上 \ 转义符。 精确查找
   比如 the 需要用 /\<the\>来查找 按 n 继续向下搜索 ,
   按 N 返回上一个搜索。

(2)命令模式切换输入模式

    a 在光标后开始插入 ( 相当于 insert 键 )
i 在光标前开始插入
A 在光标所在行末尾开始插入
I 在光标所在行首开始插入 o 在光标所在行下插入一行 O 在光标所在行上插入一行 R 进入替换模式
s 替换光标所在字符后开始编辑 S 删除光标所在行后开始编辑

  

(3)末行模式 last line mode
    在命令模式下按下 : (shift+;) 键 , 就进入了末行模式。

    :w 保存文件
:q 退出 vi 编辑
:wq 保存文件并退出 vi 编辑器 ( 无论是否修改了文件 )
:x 保存退出
ZZ 保存退出
:e 不离开 VI ,开始编辑一个新的文件
:w <filename-new> 存储当前编辑的文件到一个新的文件(另存 为)
:x 文件仅被修改时才写入 并退出 , 未写入则直接退出
:q! 这个 ! 具有强制的作用 , 因为在 vi 中默认不保存文件是无法 退出 vi 编辑器的 , 主要为了防止意外退出。
:w! 强制保存 , 有的时候文件是只读属性的时候 ,可以用这个方式 来保存 , 当然前提是文件所有者必需是当前用户。

(4)末行模式 查找和替换 查找格式
    :范围 命令/查找字串/替换字串/ 参数
    查找范围:
    % 所有的行
    $ 文件最后一行
    . 光标所在行
    1,50 1-50行

命令:
  查找的命令全称是 substitute但为了方便期间可以使用简写 sub 或者干脆用 s 这三个单词都可以用做查找的命令查找。查找的内 容中可以使用正则表达式 , 这样可以让查找方式非常灵活多变 替换的内容当然就是替换的内容了最后的参数有很多 , 可以同时 使用多个参数
  g 替换所有查找到的内容
  c 每次替换的时候都手工确认 y 同意 n不同意仍然继续替换, q 退出替换
  i 忽略大小写
  I 不忽略大小写
  e 不显示出错信息

示例:

 :% s/root/--linux--/g
:% s/\/usr\/bin/\/home/g
:% s/^/linux/g
:% s/$/s/g

精确查找替换     :% s/\<bin\>/----------------/g

 :set nu 显示行号 , 打开这个功能以后会在每一行的最左面显示 行号 , 行号不算在文件本身
:set nonu 关闭显示行号的功能
:set nohlsearch 消除搜索的记号
:set ic 忽略大小写 , 主要是为了方便搜索
:set noic 不忽略大小写
:syntax on 打开色彩支持 , 在 linux 中编辑文件和编辑程序源代 码等工作都是在 vim 中完成的 , 打开色彩支持可以在查看或编写 程序的时候发现语法等错误
:syntax off 关闭色彩支持

  

Linux中vim编辑命令的更多相关文章

  1. linux中vim常用命令

    vim工作模式 vi 文件名 进入命令模式 i a o 进入插入模式 ESC键 回到命令模式 : 进入编辑模式 添加行号 :set number/nu :wq 保存退出 插入命令 a 在光标所在字符后 ...

  2. linux中vim常用命令总结

  3. 关于XShell的常见使用和设置以及Linux中的常见命令.

    本文部分转自:http://sundful.iteye.com/blog/704079 和 http://www.vckai.com/p/5 有时候在XShell中操作的一些命令傻傻的分不清这个命令到 ...

  4. 20145234黄斐《信息安全系统设计基础》第八周(Linux下vim相关命令)

    Linux下vim相关命令 在编辑程序时经常使用vim,所以记住一些常用的指令还是很有必要的 文件命令 vim file 打开单个文件vim file vim file1 file2 file3 .. ...

  5. Linux中vim编辑器常用操作技巧

    Normal 0 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-styl ...

  6. Linux故障:linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0"。

    linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0".   ...

  7. Linux中vim编辑器 的 快捷键 --- 常用 的 都比较全

    Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到 ...

  8. Linux中的历史命令

    Linux中的历史命令一般保存在用户    /root/.bash_history history 选项 历史命令保存文件夹 选项     -c:清空历史命令     -w :把缓存中的历史命令写入历 ...

  9. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

随机推荐

  1. 自学_JAVASCRIPT<四>

    自学_JAVASCRIPT 什么是JAVASCRIPT HTML只是描述网页长相的标记语言,没有计算.判断能力,如果所有计算.判断(比如判断文本框是否为空.判断两次密码是否输入一致)都放到服务器端执行 ...

  2. 架构视角 - DDD、TDD、MDD领域驱动、测试驱动还是模型驱动?

    提出问题 「领域驱动设计」之于微服务,好比麦当劳之于汉堡(个人更喜欢肯德基,汉堡要大些,麦当劳的汉堡,想吃顿饱饭,请先给我上6个

  3. golang-方法和接口

    1.方法 方法类似函数 ,多了一个接收者 ,接收者是指针指向结构体(也可以是值) ,方法与结构体绑定 (可以理解为模板定义方法) ,方法位于结构体内部 方法集可以理解就是多个方法 可以组合其他结构体方 ...

  4. 使用NDK(r20)编译FFmpeg

    前两天在论坛上看到一个问题,大意是怎么在UBUNTU下使用NDK-r20编译FFmpeg.我第一反应是不该用r20,因为我在很早前用过没有gcc版本的NDK,发现有很多问题不能编译,就立马回复了个使用 ...

  5. Spring的常用注解

    Spring框架主要包括IoC和AOP,这两大功能都可以使用注解进行配置. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8新建一个名称为demo的Spri ...

  6. subprocess, re模块,logging, 包等使用方法

    subprocess, re模块,logging, 包等使用方法 subprocess ''' subprocess: sub: 子 process: 进程 可以通过python代码给操作系统终端发送 ...

  7. linux 的swap、swappiness及kswapd原理【转】

    本文讨论的 swap基于Linux4.4内核代码 .Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑. 希望本文能让读者了解Linux对swap的使用大概是什么样子.阅读完 ...

  8. 【心得】Lattice EPC3 PCS使用经验

    [博客导航] [导航]FPGA相关 一.目的 将使用过程中遇到的问题随时记录,共享经验心得. 二.心得随笔 1.仿真脚本 为避免生成PCS IP之后,仿真时忘记添加参数文件,可以在仿真脚本中添加以下代 ...

  9. CodeForces 1238C(思维+贪心)

    题意 https://vjudge.net/problem/CodeForces-1238C 您现在正在玩一个游戏,您初始在一个高度 h 的悬崖 悬崖沿壁高度为 1-h 的这些位置均有平台,平台有两种 ...

  10. 03. Go 语言容器

    Go语言容器(container) 变量在一定程度上能满足函数及代码要求.如果编写一些复杂算法.结构和逻辑,就需要更复杂的类型来实现.这类复杂类型一般情况下具有各种形式的存储和处理数据的功能,将它们称 ...