Vim 编辑器操作汇总

所属分类: 脚本专栏 / linux shell 阅读数: 680
收藏 0 赞 0 分享

vim   [参数]   [文件 ..]         编辑指定的文件
    或: vim   [参数]    -     从标准输入(stdin)读取文本
    或: vim   [参数]    -t    tag 编辑 tag 定义处的文件
    或: vim   [参数]    -q   [errorfile] 编辑第一个出错处的文件

参数:
  --  在这以后只有文件名
   -v Vi 模式 (同 "vi")
  -e Ex 模式 (同 "ex")
  -E   Improved Ex mode
  -s 安静(批处理)模式 (只能与 "ex" 一起使用)
  -d Diff 模式 (同 "vimdiff")
  -y 容易模式 (同 "evim",无模式)
  -R 只读模式 (同 "view")
  -Z 限制模式 (同 "rvim")
  -m 不可修改(写入文件)
  -M 文本不可修改
   -b 二进制模式
   -l Lisp 模式
   -C 兼容传统的 Vi: 'compatible'
  -N 不完全兼容传统的 Vi: 'nocompatible'
  -V[N][fname] Be verbose [level N] [log messages to fname]
  -D 调试模式
   -n 不使用交换文件,只使用内存
   -r 列出交换文件并退出
   -r(跟文件名) 恢复崩溃的会话
   -L   同 -r
  -A 以 Arabic 模式启动
   -H 以 Hebrew 模式启动
   -F 以 Farsi 模式启动
   -T <terminal> 设定终端类型为 <terminal>
  --not-a-term Skip warning for input/output not being a terminal
  -u <vimrc> 使用 <vimrc> 替代任何 .vimrc
  --noplugin 不加载 plugin 脚本
   -P[N] 打开 N 个标签页 (默认值: 每个文件一个)
  -o[N] 打开 N 个窗口 (默认值: 每个文件一个)
  -O[N] 同 -o 但垂直分割
   + 启动后跳到文件末尾
   +<lnum> 启动后跳到第 <lnum> 行
   --cmd <command> 加载任何 vimrc 文件前执行 <command>
  -c <command> 加载第一个文件后执行 <command>
  -S <session> 加载第一个文件后执行文件 <session>
  -s <scriptin> 从文件 <scriptin> 读入正常模式的命令
   -w <scriptout> 将所有输入的命令追加到文件 <scriptout>
  -W <scriptout> 将所有输入的命令写入到文件 <scriptout>
  -x 编辑加密的文件
   --startuptime <file> Write startup timing messages to <file>
  -i <viminfo> 使用 <viminfo> 取代 .viminfo
  -h 或 --help 打印帮助(本信息)并退出
   --version 打印版本信息并退出

编辑器打开时:

Vi有三种基本工作模式:

•命令模式

•文本输入模式

•末行模式。

命令行模式

  任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。

文本输入模式

  在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

末行模式

  末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:

  :sp newfile

则分出一个窗口编辑newfile文件。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。

 进入插入模式:

i: 插入光标前一个字符

I: 插入行首

a: 插入光标后一个字符

A: 插入行未

o: 向下新开一行,插入行首

O: 向上新开一行,插入行首

进入命令模式:

ESC:从插入模式或末行模式进入命令模式

移动光标:

h: 左移

j: 下移

k: 上移

l: 右移

M: 光标移动到中间行

L: 光标移动到屏幕最后一行行首

G: 移动到指定行,行号 -G

w: 向后一次移动一个字

b: 向前一次移动一个字

{: 按段移动,上移

}: 按段移动,下移

Ctr-d: 向下翻半屏

Ctr-u: 向上翻半屏

Ctr-f: 向下翻一屏

Ctr-b: 向上翻一屏

gg: 光标移动文件开头

G: 光标移动到文件末尾

删除命令:

x: 删除光标后一个字符,相当于

Del X: 删除光标前一个字符,相当于 Backspace

dd: 删除光标所在行,n dd 删除指定的行数

D: 删除光标后本行所有内容,包含光标所在字符

d0: 删除光标前本行所有内容,不包含光标所在字符

dw: 删除光标开始位置的字,包含光标所在字符

撤销命令:

u: 一步一步撤销

Ctr-r: 反撤销

重复命令:

.: 重复上一次操作的命令

文本行移动:

>>: 文本行右移

<<: 文本行左移

复制粘贴:

yy: 复制当前行,n yy 复制 n 行

p: 在光标所在位置向下新开辟一行,粘贴

可视模式:

v: 按字符移动,选中文本

V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

替换操作:

r: 替换当前字符

R: 替换当前行光标后的字符

查找命令:

/: str查找

n: 下一个

N:上一个

替换命令:

把abc全部替换成123

末行模式下,将当前文件中的所有abc替换成123

:%s/abc/123/g

末行模式下,将第一行至第10行之间的abc替换成123

:1, 10s/abc/123/g

vim里执行 shell 下命令:

末行模式里输入!,后面跟命令

以上所述是小编给大家介绍的Vim 编辑器操作汇总,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

更多精彩内容其他人还在看

shell结合expect写的批量scp脚本工具

expect用于自动化地执行linux环境下的命令行交互任务,例如scp、ssh之类需要用户手动输入密码然后确认的任务。有了这个工具,定义在scp过程中可能遇到的情况,然后编写相应的处理语句,就可以自动地完成scp操作了
收藏 0 赞 0 分享

备份shell脚本实例代码

备份shell脚本一例,有需要的朋友可以参考下
收藏 0 赞 0 分享

shell中冒号的特殊用法分享

有关shell中冒号的特殊用法,供朋友们参考
收藏 0 赞 0 分享

Shell脚本学习指南之文本处理工具

Shell脚本学习指南之文本处理工具介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本学习指南之查找与替换介绍

Shell脚本学习指南之查找与替换介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

分享shell编程中的几个小技巧

分享shell编程中的几个小技巧,学习shell编程的朋友可以看下
收藏 0 赞 0 分享

linux中常用脚本和函数分享

这linux中经常需要用到的一些脚本与函数,这里简单的分享下,方便需要的朋友
收藏 0 赞 0 分享

关于Shell脚本效率优化的一些个人想法

很想像之前的一片Mysql全面优化详解那样子写一篇全面的优化文章,但是苦于没有相关书籍参考,也没有发现网络牛人有总结帖或文章之类的,所以就根据个人理解和经验写一些能优化程序效率的东西吧。这篇是不敢称全面的
收藏 0 赞 0 分享

shell 基本计算、逻辑运算、位运算详解

Shell 提供大量的基本运算操作,在脚本中非常有用。Shell 对您提供的算术表达式求值,执行运算展开式,此时使用得出的结果替换表达式
收藏 0 赞 0 分享

hbase shell基础和常用命令详解

HBase是一个分布式的、面向列的开源数据库,源于google的一篇论文《bigtable:一个结构化数据的分布式存储系统》
收藏 0 赞 0 分享
查看更多