博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vim 使用入门
阅读量:7014 次
发布时间:2019-06-28

本文共 2448 字,大约阅读时间需要 8 分钟。

什么是VIm

  • vim 是跨平台的一看轻量级编辑器
  • vim 可以是其他编辑器中的一款插件

vim 能做什么

  • 命令行 编辑文件内容
  • 在编辑器中编辑文件内容

vim 模式

  • 插入模式(正常模式,可以正常输入)
  • 编辑模式(可以使用vim快捷键的模式)
  • 命令模式(也叫末行模式,可以使用一些vim命令, 在移植的编辑器插件中, 有的可能用不了)
  • 视图模式(也叫选择模式, 可以移动选中)

模式切换

  • 插入模式 切换到 编辑模式ESC
  • 命令模式 切换到 编辑模式ESC
  • 视图模式 切换到 编辑模式ESC
  • 编辑模式 切换到 命令模式: (使用英文状态下的冒号)
  • 编辑模式 切换到 视图模式v
  • 编辑模式 切换到 插入模式
    • 光标当前位置前 并切换到插入模式: i
    • 光标当前位置后 并切换到插入模式: a
    • 删除光标当前位置 并切换到插入模式: s
    • 光标当前行的下一行 切换到插入模式: o
    • 光标当前行的上一行 切换到插入模式:O
    • 光标的当前行的行首 切换到插入模式:I
    • 光标的当前行的行尾 切换到插入模式:A
    • 删除当前行内容 并 切换到插入模式:cc

注意区别大小写的问题

编辑模式下的常用命令

移动光标

光标 向左移动 一个位置 :h

光标 向下移动 一行:j
光标 向上移动 一行:k
光标 向右移动 一个位置:l
光标 向右移动 一个 英文单词 的距离: weE
光标 向左移动 一个 英文单词 的距离:bgegE
跳转到 文件的第一行gg
跳转到 文件的最后一行G
跳转到指定行: ngg 或者 nG

光标移动到行首(不切换模式):^ 或者数字 0

光标移动到行尾(不切换模式):$

把光标移动到 光标所在行 的下一个 字符(任意字符) 位置: fa 移动到同一行下一个a字符的位置

把光标移动到 光标所在行 的上一个 字符(任意字符) 位置: Fa 移动到同一行上一个a字符的位置
重复执行 f 命令:; 使用英文状态下的分号

n:代表任意一个数字 number

移动一个单词的距离, 各种方式之间有细微的差别,但是...差别不大

移动视图

将光标所在行 移动到 屏幕的中间zz

将光标所在行 移动到 屏幕顶端zt
将光标所在行 移动到 屏幕底端zb

把光标移到屏幕最顶端一行:H

把光标移到屏幕中间一行: M
把光标移到屏幕最底端一行:L

windows或者其他编辑器插件可能计算的不准确HML 会移动光标

编辑内容

复制 光标所在行:yy

复制 光标所在行一下 n行nyy
从 光标当前位置 复制 到 行首位置: y^
从 光标当前位置 复制 到 行首位置: y$
从 光标当前位置 复制 到 文件第一行: ygg
从 光标当前位置 复制 到 文件最后一行: yG

剪切 光标所在行:dd

剪切 光标所在行一下 n行ndd
从光标当前位置 剪切 到 行首位置: d^
从光标当前位置 剪切 到 行首位置: d$
从 光标当前位置 剪切 到 文件第一行: dgg
从 光标当前位置 剪切 到 文件最后一行: dG

删除 光标当前位置后的 一个字符x

删除 光标当前位置后的 多个字符nx
删除 光标当前位置后的 一个字符(会进入插入模式): s
删除 光标当前位置后的 多个字符(会进入插入模式): ns
删除 当前行的内容(会进入插入模式): cc 或者 S
删除 当前行后的n行的内容(会进入插入模式): ncc 或者 nS
删除 当前光标所在位置的后一个字符(会进入插入模式):cl
删除 当前光标所在位置的后n个字符(会进入插入模式):cnl
删除 当前光标所在位置的后一个单词(会进入插入模式):cw
删除 当前光标所在位置的后n个单词(会进入插入模式):cnwncw
从光标当前位置 删除 到 行首位置(会进入插入模式): c^
从光标当前位置 删除 到 行首位置(会进入插入模式): c$

cnw dnw ynw 这些带操作次数的命令,都可以数字开头形式操作ncw ndw nyw

删除与剪切不同, 删除的内容不能用 p 来粘贴

粘贴 在光标所在位置粘贴 一次p

粘贴 在光标所在位置粘贴 n次np

整行复制、剪切会带有换行符, 所以粘贴的内容会在光标当前位置的下一行

替换 当前光标所在位置的 一个字符r 输入替换的 字符

替换 当前光标所在位置的 一个字符r 输入替换的 字符
先按 r 然后在输入替换的字符

撤销 上一次操作(等于:ctrl + z):u

撤销 多次操作:nu
恢复 上一次操作(等于:ctrl + y): ctrl + r

如果是在windows中,或者是编辑器的插件,使用ctrl键的可能会与其他快捷键冲突

合并 当前行和下一行的内容:J

合并 当前行和下n行的内容:nJ

合并的如果是空行会删除空行

排版

向左缩进>>

向右缩进<<

末行模式的常用操作

查找内容

查找内容: 在编辑模式下输入/

上一个查找到的内容:N
下一个查找到的内容:n
忽略大小写:/test\c

替换内容

替换内容:在编辑模式下输入: 英文状态下的冒号

替换语法:[替换范围]s/查找内容/替换内容/[额外参数]

:3,5s/findContent/replaceContent/ig

多文件编辑(切换标签)

上一个标签::prev

下一个标签::next 可以缩写为 n1
最近编辑过的文件: gt

保存 && 退出编辑器

保存并退出: :wq:x

强制保存并退出: :wq!:x!
不保存退出::q
不保存强制退出::q!

最后

  • 看似很多命令,但是都有规律
  • 记住一些常用的就可以了,可以渐进式学习使用
  • vim是把双刃剑,锋利无比但是需要时间掌控

转载于:https://www.cnblogs.com/liaohui5/p/10581561.html

你可能感兴趣的文章
Java实现注册邮箱激活验证
查看>>
数据库缓存
查看>>
mvc 数据验证金钱格式decimal格式验证
查看>>
常用的Web服务器
查看>>
UPW学习资料整理 .NET C# 转
查看>>
Oracle12c中新建用户
查看>>
分布式编译工具
查看>>
对我而言晦涩的递归
查看>>
React Native 从入门到原理
查看>>
iOS如何随意的穿插跳跃,push来pop去
查看>>
使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
查看>>
【原创】JDK动态代理,此次之后,永生难忘。
查看>>
collection的框架结构
查看>>
c++中的对象复制
查看>>
ubuntu下linux内核源码阅读工具和调试方法总结
查看>>
PHP生成UTF-8编码的CSV文件用Excel打开乱码的解决办法
查看>>
IOS-5个可以帮你优化App的优秀网站
查看>>
ArrayIndexOutOfBoundsException
查看>>
JAVA判断各种类型数据是否为空
查看>>
如何使用kali的Searchsploit查找软件漏洞
查看>>