vim
2022-10-20 10:31:20

vim

安装配置

1
2
3
brew install vim
which vim /usr/bin/vim
// .vimrc 配置文件
1
2
3
4
5
6
// 查看当前用户主目录
echo $HOME
cd /Users/administrator/
ls
touch .vimrc
source ~/.vimrc

语法光亮

1
2
3
4
 /etc/vim/vimrc
setcursorline
hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white
hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white

常用命令

基本操作

i 插入 x 删除 dd 删除一行 p 黏贴 yy 复制 u 撤销 n 重复

  • i (插入) Insert 模式,按 ESC 回到 Normal 模式.
  • x 删当前光标所在的一个字符
  • :wq 存盘(保存) + 退出 (:w 存盘, :q 退出) (陈皓注::w 后可以跟文件名)
  • dd 删除当前行,并把删除的行存到剪贴板里
  • p 粘贴剪贴板 yy 复制 u 撤销
  • hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
  • :help→ 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。(陈皓注:退出帮助需要输入:q)

插入模式

  • i (插入) Insert 模式,按 ESC 回到 Normal 模式.
  • a 在光标后插入
  • o(小写o) 在当前行后插入一个新行
  • O(大写O) 在当前行前插入一个新行
  • cw 替换从光标所在位置后到一个单词结尾的字符

移动光标

  • 0 (数字0)到行头
  • $ → 到本行行尾
  • /pattern → 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
  • g_ → 到本行最后一个不是blank字符的位置。
  • ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)

保存文件

  • :e <path/to/file> → 打开一个文件
  • :w → 存盘
  • :saveas <path/to/file> → 另存为 <path/to/file>
  • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
  • :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
  • :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)

重复命令

  • . → (小数点) 可以重复上一次的命令
  • N→ 重复某个命令N次
  • 2dd 删除2行
  • 3p 黏贴3次
  • 100idesu [ESC]

移动光标

  • NG → 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
  • gg → 到第一行。(陈皓注:相当于1G,或 :1)
  • G → 到最后一行。
  • w → 到下一个单词的开头。
    e → 到下一个单词的结尾。

当前位置

指定拷贝位置

  • 0y$ 命令意味着
    • 0 → 先到行头
    • y → 从这里开始拷贝
    • $ → 拷贝到本行最后一个字符
      0y3 行头到第三个字符
  • 0 → 到行头
    ^ → 到本行的第一个非blank字符
    $ → 到行尾
    g_ → 到本行最后一个不是blank字符的位置。
    fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。
    t, → 到逗号前的第一个字符。逗号可以变成其它字符。
    3fa → 在当前行查找第三个出现的a。
    F 和 T → 和 f 和 t 一样,只不过是相反方向。

分屏

分屏: :split 和 vsplit.
下面是主要的命令,你可以使用VIM的帮助 :help split.
:split → 创建分屏 (:vsplit创建垂直分屏)

: dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
_ (或|) : 最大化尺寸 (| 垂直分屏)
+ (或-) : 增加尺寸

问题

复制和粘贴

  • P 粘贴 paste
  • yy 拷贝当前行相当于ddP

复制和黏贴指定区域

  • 0y$、0y10

删除所有内容

  • 100dd

剪切指定内容

撤销

  • u → undo 相当于ctrl z 撤销功能
  • → redo
上一页
2022-10-20 10:31:20
下一页