前言:
最近整理一些以前的学习笔记。
过去都是存储在本地,此次传到网络留待备用。\
VIM
- VIM是VI编辑器的强化版
- VIM具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计
- 支持补全(ctrl+p , ctrl+n)
vim键盘图
vim的使用
-
vim命令的使用
- 语法:
vim [选项] [文件 ..] 编辑指定的文件 vim [选项] - 从标准输入(stdin)读取文本 vim [选项] -t tag 编辑 tag 定义处的文件 vim [选项] -q [errorfile] 编辑第一个出错处的文件 ps: -若目标文件不存在,则新建空文件并编辑,不能在未创建的目录下保存 -若目标文件已存在,则打开此文件并编辑
- 选项:
+ 启动后跳到文件末尾 +<lnum> 启动后跳到第 <lnum> 行 -P[N] 打开 N 个标签页 (默认值: 每个文件一个) -o[N] 打开 N 个窗口 (默认值: 每个文件一个) -O[N] 同 -o 但垂直分割 --noplugin 不加载 plugin 脚本 -- 在这以后只有文件名 -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] 详细模式 [冗余级别 N] [输出日志消息到fname] -D 调试模式 -n 不使用交换文件,只使用内存 -r 列出交换文件并退出 -r (跟文件名) 恢复崩溃的会话 -L 同 -r -A 以 Arabic 模式启动 -H 以 Hebrew 模式启动 -F 以 Farsi 模式启动 -T <terminal> 设定终端类型为 <terminal> -u <vimrc> 使用 <vimrc> 替代任何 .vimrc --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/VIM的工作模式
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 末行模式(Last line mode)
-
命令模式:
- 启动vim后默认进入命令模式
- 批量注释:
ctrl + v 进入可视块,选中需要注释的行 I 进入输入模式,并跳转到文件头 # 注释 ESC 按两次,结束
- 命令模式下敲击键盘会被识别为命令,而非输入字符,如: 字符 | 意义 | ------------ | ------------ | i | 切换到输入模式 I | 切换到输入模式,并跳转到文件头 a | 切换到输入模式,并跳转到当前光标的下一个字符 A | 切换到输入模式,并跳转到当前光标所在行末尾的下一个字符 o | 切换到输入模式,并在当前光标所在行下插入一行且跳转 O | 切换到输入模式,并在当前光标所在行上插入一行且跳转 : | 切换到末行模式 h,j,k,l | 移动光标 左,下,上,右 yy | 复制光标当前所在的一行 nyy | 复制n行 p | 粘贴到当前光标的下一行 P | 粘贴到当前光标的上一行 dd | 删除光标当前所在行 ndd | 删除n行 D | 删除光标所在行的内容 nD | 删除n行 gg | 移动光标到文件头 ngg | 移动光标到n行 G | 移动光标到文件尾 nG | 移动光标到n行 x | 删除当前光标下的字符 u | 撤销一步 ^ | 光标跳到行首 $ | 光标跳到行尾 d^ | 删除到行首 d$ | 删除到行尾 ZZ | 保存并退出
-
输入模式(插入模式):
按键 意义 HOME/END 移动光标到行首/行尾 Page Up/Page Down 上/下翻页 Insert 切换光标为输入/替换模式,光标将变成竖线/下划线 ESC 退出输入模式,切换到命令模式 -
末行模式:
字符 意义 :n 切换到下一个文件 :N 切换到上一个文件 :w 保存 :wq 保存当前文件并退出 :q 退出 :q! 强行退出且不保存 :sp 分屏显示(ctrl+w+上下切屏) :r 文件路径 read文件到当前文件所在光标的下一行 :w 文件路径 另存为 :s/旧/新/ 新替换旧的内容,光标所在行的第一个匹配 :s/旧/新/g 新替换旧的内容,光标所在行的所有内容匹配 :%s/旧/新/ 新替换旧,所有行的第一个匹配 :%s/旧/新/g 新替换旧,所有行的所有内容 :n,ms/旧/新/g 替换第n到m行的所有内容 :set nu 显示行号 :set nonu 不显示行号 :set paste 粘贴模式