Linux基础——vim 简单使用

Vim是一种编程语言,有多种模式,按键在不同模式下有不同的功能,默认模式是normal模式,其他模式可以通过esc 键退回到normal模式

与vi 的区别:vi是Unix操作系统和类Unix操作系统中最通用的文本编辑器,而vim 是从vi发展来的更强大的文本编辑器,可以主动的以字体颜色辨别语法的正确性,方便程序设计,与vi完全兼容

  • Normal:正常模式,默认方式
  • Insert: 编辑模式 按i,a,o进入
  • Replace: 替换文本,按r进入
  • Visual (plain, line, or block): 选取文本,按v, shift+v, ctrl+v分别进入
  • Command-line: 命令模式,按:进入

1, 插入模式

insert模式下相当于文本编辑器,插入到当前光标之前

2. buffers,tabs, windows

  Vim维护一组打开的文件,称为“缓冲区” buffers。Vim会话有许多选项卡,每个选项卡有许多窗口(分割窗格)windows。每个窗口显示一个单独的缓冲区。不像你熟悉的其他程序,比如网页浏览器,缓冲区和窗口之间不是一对一的对应关系;窗口仅仅是视图。给定的缓冲区可以在多个窗口中打开,甚至在同一个选项卡tabs中。默认情况下,Vim以一个选项卡打开,其中包含一个窗口。

3. 命令模式

包括打开,保存,关闭文件和退出vim

  • :q quit (close window),! 强制操作
  • :w save (“write”)
  • :wq save and quit
  • :e {name of file} open file for editing
  • :ls show open buffers
  • :help {topic} open help
    • :help :w opens help for the :w command
    • :help w opens help for the w movement
  • :set nu 显示行号, nonu 不显示行号,或者用!反转
  • :s/要替换的词/替换后的词  :只有当前光标所在的行的第一个匹配到的词进行替换 加上/g 可进行当前行的全局匹配替换
  • :%s/要替换的词/替换后的词 :全局每行第一个替换, 加上/g 可进行全局匹配替换

4. normal movements

大部分时间用于正常模式,使用移动命令来导航缓冲区。Vim中的movements也被称为“nouns”,因为它们指的是文本块

  • 上下左右移动: hjkl (左, 下, 上, 右)
  • 单词操作: w (下一个单词), b (单词开头), e (单词结尾)
  • 行: 0 (行开头), ^(该行首个非空字符), $ (行尾)
  • 屏幕: H (屏幕开头), M (屏幕中间), L (屏幕底部)
  • 翻页滚动: Ctrl-u (上), Ctrl-d (下)
  • 整个文件: gg (文件开头), G (文件结尾)
  • 多行: :{number}<CR> or {number}G (line {number})  如3G 跳转到第三行
  • Misc: % (匹配项) 
  • Find: f{character}t{character}F{character}T{character}
    • 定位到当前行匹配的字符前/后
    • , / ; 向下/向上匹配
  • 查找: /{regex}n / N 进行匹配项的向下/上查找
  • d{motion} 删除
    • e.g. dw is 删除单词, d$ is 删除当前字符到行尾的内容, d0 is 删除当前字符到行开头的内容
  • c{motion}  替换
    • e.g. cw is change word
    • like d{motion} followed by i
  • x 剪切一个字符(当前光标)相当于del 
  • X 剪切一个字符(当前光标的前一个),相当于backspace
  • s 替换字符 (equal to cl)
  • Visual mode + 操作
    • 选取文本, d to delete it or c to change it
  • u 撤销, <Ctrl-r> to 重复
  • y  复制
  • p 粘贴
  • 其他: e.g. ~ 翻转大小写

5. visual modes 

  • Visual: v
  • Visual Line: V
  • Visual Block: Ctrl-v

使用移动方向进行文本的选取

6.  批量操作

使用数字来重复操作

  • 3w move 3 words forward
  • 5j move 5 lines down
  • 7dw delete 7 words

8. modifiers

  • ci(  更改当前括号内的内容
  • ci[ 更改当前方括号内的内容
  • da' 删除单引号字符串,包括周围的单引号

9.多窗口操作

  • :sp / :vsp to split windows
  • Can have multiple views of the same buffer.

10 . 宏操作

  • q{character} 在寄存器{character}中记录宏
  • q  停止记录
  • @{character} 复制宏
  • Macro 遇到错误会终止
  • {number}@{character} 多次执行宏操作
  • 递归宏
    • first clear the macro with q{character}q
    • record the macro, with @{character} to invoke the macro recursively (will be a no-op until recording is complete)

其他操作百度、谷歌

配置 Vim 有更加深入的了解,Learn Vim Script the Hard Way 是一个很好的资源。

 

posted @ 2023-02-10 14:31  forever_fate  阅读(69)  评论(0)    收藏  举报