专栏首页python成长之路vim编辑器操作汇总

vim编辑器操作汇总

VIM - Vi IMproved 7.4 编辑器操作汇总

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 下命令:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 函数的多个返回值

    skylark
  • 正则匹配路由

      在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要用到正则匹配,根据自己的规则去限定请求参数再进行访问

    skylark
  • 新经资讯项目业务逻辑梳理

    __init__.py 项目应用初始化文件--应用程序实例、数据库实例、注册蓝图、日志等

    skylark
  • Vim 模式

    Vim和Vi一样具有三种模式:命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode)。

    Yif
  • linux vi/vim

    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode...

    小飞侠xp
  • linux新手应该知晓的x条命令(长更附释,示例)

    Linux操作系统诞生于1991 年10 月5 日。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备...

    葆宁
  • 收藏 | Linux常用156个命令汇总!

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的...

    华章科技
  • 收藏 | Linux常用156个命令汇总!

    来源:机器学习算法与Python学习 本文为大家带来Linux系统中156个常用的命令。 linux命令是对Linux系统进行管理的命令。对于Linux系统来说...

    数据派THU
  • Java 面试——即时编译( JIT )

    当我们在写代码时,一个方法内部的行数自然是越少越好,这样逻辑清晰、方便阅读,其实好处远不止如此,通过即时编译,甚至可以提高执行时的性能,今天就让我们好好来了解一...

    健程之道
  • 鸟哥的Linux私房菜笔记第四章

    对着《鸟哥的Linux私房菜-基础版》做了简化笔记。不想让自己知其然而不知其所然。所以写个博客让自己好好巩固一下,当然不可能把书中的内容全部写下来。在这里就简化...

    Johnson木木

扫码关注云+社区

领取腾讯云代金券