VIM

VIM

进入插入模式

命令光标位置
i字符处
I行首
a字符后
A行尾
O在上行新建一行处
o在下行新建一行处

退出与保存

  • 保存退出
    • ZZ 保存退出
    • :w 保存
    • :wq 保存退出
    • :x 保存退出(如果内容和源文件一致 则不保存)
    • :q! 不保存退出
  • 另存
    • :w FILE 保存为FILE
    • :w! 保存只读文件(root)
    • :N,M2w FILE 将N行到M行的内存另存到FILE中
  • 其他
    • :r FILE 将FILE内容填充到当前文件中

光标移动

  • 逐字符移动
    • h, l ,j ,k
    • left, right, up, down (iMode)
  • 逐单词移动
    • w 移至下一个单词词首
    • e 移至当前单词/下一个单词词尾
    • b移至当前单词/前一个单词词首
    • shift+left/right 单词词首移动 (iMode)
  • 翻屏操作
    • ctrl+b/f 上/下翻一屏
    • ctrl+u/d 上/下翻半屏
    • shift+up/down 上/下翻一屏
  • 行内跳转
    • 0, ^(非空白字符) 行首
    • $, g_(非空白字符) 行尾
    • NG 跳转到第N行
    • G 跳转到最后一行
    • gg 跳转到第一行
    • NfC 跳转到第N个C字符处
    • NtC 同Nfc 搜索时方向相反
    • % 匹配括号移动
    • mC 标记 ‘C 标记跳转 (”回到上一次位置)

编辑命令

  • 基本操作
    • x 删除单个字符
    • dd 删除整行
    • yy 复制整行
    • P/p 粘贴至所在行 上方/下方 字符 前方/后方
  • 组合操作
    • s 删除当前字符后插入 同xi
    • cw 删除当前单词后插入 同dwi
    • Nyy 复制从当前行开始的N行
    • ye 复制从光标到单词结尾的字符
    • yb 复制从光标到单词开头的字符
    • Ndd 删除从当前行开始的N行
    • Nx 删除从当前字符开始的N个字符
    • de 删除从光标到单词结尾的字符
    • db 删除从光标到单词开头的字符

其他模式

  • 替换模式
    • r 替换单个字符 用法同x
    • R 替换多个字符
  • 撤销模式
    • u 撤销前一次编辑操作 (Nu 撤销N次)
    • Ctrl+r 重复最近一次操作
  • 选取模式
    • v 按字符选取
    • V 按行选取
    • Ctrl+V 按块选取

查找和替换

  • 查找
    • /PATTERN 从前往后查找
    • ?PATTERN 从后往前查找
      n 查找下一个 N 查找上一个
  • 替换
    :START_LINE,END_LINEs/OLD_STR/NEW_STR/[g]
    用法同sed 当前行(.) 最后一行($)

打开文件时操作

vim +N FILE 光标自动处于N行
vim + FILE 光标自动处于最后一行
vim +/PATTERN FILE 光标自动处于符合PATTERN的行
vim FILE... 打开多 个文件
* :next/:prev 切换 上/下 一个文件*
:first/:last 切换最 前/后 一个文件
vim -o/O FILE... 水平/垂直 分割窗口编辑多个文件
:qa 退出所有 文件/窗口

打开多个文件和分屏

:e FILE 打开另一个文件
*:bn :bp来切换上/下一个文件
:wq全部保存并退出*
Ctrl+w, s 水平拆分窗口
Ctrl+w, v 垂直拆分窗口
Ctrl+w, ARROW 窗口间切换光标
*:sp 水平拆分窗口
:vsp 垂直拆分窗口
:qa 退出所有 文件/窗口*

其他操作

:! CMD 和shell交互 不用退出vim也能执行命令
vim出错的应对情况: 删除对应名为FILENAME.swp的文件
vim高级操作例子
0<Ctrl-v>[选取行数]I[输入字符串]<ESC> 批量在行首添加字符串
<Ctrl-v>[选取行数]$A[输入字符串]<ESC> 批量在行尾添加字符串

VIM配置文件

/etc/vimrc 全局配置文件
~/.vimrc 个人配置文件
~/.viminfo VIM操作记录文件

VIM设置

显示/隐藏 行号: set nu/nonu
忽略/区分 大小写: set ic/noic
设定 自动缩进/不缩进: set ai/noai
查找单词时 高亮/不高亮: set hlsearch/nohlsearch
语法 高亮/不高亮: syntax on/off
C/C++缩进方式: set cindent
可以用其他命令以及map键位映射等高级设置配置VIM

vim简易设置(shell脚本)

set nu
set tabstop=4
set ai

inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap " ""<ESC>i
inoremap ' ''<ESC>i

imap if<TAB> if [  <RIGHT>; then<cr>fi<ESC>O<TAB><UP><RIGHT>
imap for<TAB> for  in ; do<cr>done<ESC>O<TAB><UP>
imap case<TAB> case  in<cr>*)<cr><TAB><cr>;;<cr><bs>esac<ESC>4k2li
imap func<TAB> (<RIGHT> {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值