一、概述

vi: Visual Interface 可视化接口

vim: VI iMproved VI增强版

全屏编辑器,模式化编辑器

vim模式:

  • 编辑模式(命令模式)
  • 输入模式
  • 末行模式

模式转换:

编辑-->输入:

    i: 在当前光标所在字符的前面,转为输入模式;【常用】
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;

输入-->编辑:按  ESC

编辑-->末行:按  :

末行-->编辑:按 ESC, ESC

注:输入模式和末行模式之间不能直接切换

二、命令操作

1、打开文件

  vim aa.txt

2、保存或退出:末行模式关闭文件:【按 ESC 键,然后输入 : 跳到末行模式】

  :w 保存文件但不退出vi

  :w file 将修改另外保存到file中,不退出vi

  :w! 强制保存,不推出vi

  :wq 保存文件并退出vi  桶 :x

  :wq! 强制保存文件,并退出vi

  q: 不保存文件,退出vi

  :q! 不保存文件,强制退出vi

  :e! 放弃所有修改,从上次保存文件开始再编辑

编辑模式下退出

  ZZ: 保存并退出

3、删除:非编辑模式下【按ESC键 跳到命令模式,然后:】

  dd:删除游标所在的一整行(常用)

  ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行

  d1G:删除光标所在到第一行的所有数据

  dG:删除光标所在到最后一行的所有数据

  d$:删除光标所在处,到该行的最后一个字符

  d0:那个是数字0,删除光标所在到该行的最前面的一个字符

  x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键)

  nx:n为数字,连续向后删除n个字符

4、翻屏

  Ctrl+f: 向下翻一屏

  Ctrl+b: 向上翻一屏

  Ctrl+d: 向下翻半屏

  Ctrl+u: 向上翻半屏

5、撤消编辑操作 u

  u:撤消前一次的编辑操作

  #u: 直接撤消最近#次编辑操作

  连续u命令可撤消此前的n次编辑操作

  撤消最近一次撤消操作:Ctrl+r

6、可视化模式

  v: 按字符选取   V:按矩形选取

7、查找

  /PATTERN  或 ?PATTERN

  n 下一个  N 上一个

8、查找并替换

  在末行模式下使用s命令

  headline,footlines#PATTERN#string#g

  1,$:表示全文

  %:表示全文

9、

三、其他扩展

1、显示或取消显示行号

  :set nu

  :set nonu

  mu = number

2、显示忽略或区分字符大小写

  :set ic

  :set noic

  ic = ignorecase

3、设定自动缩进

  :set ai

  :set noai

  ai = autoindent

4、查找到的文本高亮显示或取消

  :set hlsearch

  :set nohlsearch

5、语法高亮

  :syntax on

  :syntax off

注:特性当前有效,如果想要永久有效需修改配置文件

  /etc/vimrc 针对所有用户

  ~/.vimrc 针对当前用户

008-linux shell vim使用的更多相关文章

  1. Linux Shell Vim 经常使用命令、使用技巧总结

    前言 本文总结了自己实际开发中的经常使用命令,不定时更新,方便自己和其它人查阅. 如有其它提高效率的使用技巧.欢迎留言. 本文地址 http://blog.csdn.net/never_cxb/art ...

  2. 73条日常Linux shell命令汇总,总有一条你需要!

    转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...

  3. Linux shell用法和技巧(转)

    原文出处: techbar   译文出处: 外刊IT评论 使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某 ...

  4. Linux Shell 数学运算

    Linux Shell 数学运算 在Linux中直接使用数学运算符进行数学运算往往得不到我们想要的计算结果.要在Shell中进行数学运算,我们需要借助点小手段.目前,Linux Shell中进行数学运 ...

  5. Linux shell 常用

    使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这些用法,并 ...

  6. linux shell突然显示-bash-4.1#的解决方法

    老沙昨天还登录这个linux服务器,并且命令行好好的,今天突然在linux shell中不显示路径了,显示为-bash-4.1#. 以下是老沙的解决方案 vim ~/.bash_profile 如果没 ...

  7. Linux shell用法和技巧

         使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这 ...

  8. linux —— shell 编程(整体框架与基础笔记)

    导读 关于shell编程基础的学习,网上有很多资源,如果在校图书馆应该也有一些教程,所以这里对于零碎的基础不做详细记录,而只是对一些常用的概念.命令与操作做一个简要的记录,以备方便查找. (本文所有语 ...

  9. Linux shell日常命令和技巧

    转自:http://www.vaikan.com/linux-shell-tips-and-tricks/ 原文:http://www.techbar.me/linux-shell-tips/ 使用L ...

  10. Linux shell用法和技巧(转)

    使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这些用法,并 ...

随机推荐

  1. pt-online-schema-change 最佳实践(转)

    pt的详细步骤 Step 1: Create the new table. Step 2: Alter the new, empty table. This should be very quick, ...

  2. php工厂方法模式(factory method pattern)

    继续练 <?php /* The factory method pattern deals with the problem of creating objects without having ...

  3. 锤子手机做appium自动化测试时,运行脚本总是弹出警告框的问题

    当运行脚本的时候,总是提示若干个如上提示框,必须点击同意才能进行下一步:解决方案: 在设置,全局高级设置,开发者选项中打开“总是允许USB安装应用”即可解决:

  4. Java并发编程-JUC-CountDownLatch 倒计数门闩器-等待多线程完成再放行 -一次性使用

    如题 (总结要点) CountDownLatch 倒计数门闩器, 让1-n-1个线程等待其他多线程完成工作. (Excel的多个Sheet的解析,最终等待解析完毕后;要实现主线程等待所有线程完成she ...

  5. 阿里巴巴Java开发手册(命名规范/常量定义篇)——查自己的漏-补自己的缺

    一.编程规约 (一) 命名规约 1. [强制]所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $Object / name_ / ...

  6. python神器——Anaconda的安装与优化配置

    python 对于初学者来说,原版的python在使用的时候非常麻烦,特别是在添加库.升级库的时候总是会报好多错误,缺这缺那.但是自从有了Anaconda以后,妈妈再也不用担心我用不了python啦! ...

  7. 破解EXCEL工作表保护密码

    神技 破解EXCEL工作表保护密码 http://www.mr-wu.cn/crack-excel-workbook-protection/ 我们可以通过新建工作本,来创建一个新的工作本来创造新的宏而 ...

  8. 洛谷 P3243 [HNOI2015]菜肴制作 题解

    每日一题 day60 打卡 Analysis 这道题一看就感觉是个拓扑排序,但因为按字典序最小的排序会有问题(见第三个样例)主要原因是每次选择有后效性,而从后往前就不会存在这个问题,因为每个子任务都是 ...

  9. ACM数据结构-单调栈、队列

    1.最大数 代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <st ...

  10. nginx 反向代理之 proxy_buffering

    proxy_buffering主要是实现被代理服务器的数据和客户端的请求异步. 为了方便理解,我们定义三个角色,A为客户端,B为代理服务器,C为被代理服务器. 当proxy_buffering开启,A ...