美文网首页
【vim】学习笔记

【vim】学习笔记

作者: 清水芦苇 | 来源:发表于2017-07-08 18:32 被阅读70次

按功能划分出命令

光标移动

w移动光标到下一个单词的词首,b移动光标到上一个单词的词首;e移动光标到下一个单词的结尾,ge移动光标到上一个单词的结尾。
^或者0(数字零)光标移至当前行首。(0 - 移动到行首
^ - 移动到行首的非空白符)
$光标移至当前行尾
#j#k向下或向上移动#行(set relativenumber 之后非常管用)
gg光标移动到全文开头,在vim才有效,vi中无效
GG光标移动到全文结尾
G 转到最后一行行首
ctrl uctrl d控制屏幕滚动,同时光标跟着定位走。通过:set scroll=10 可以设定一次滚动的举例。

括号跳转:
% 跳到匹配的括号处,如下所有括号类型:{ } [] ()
[{ 跳到本代码块(由{}界定)的开头
[} 跳到本代码块的结尾

编辑(增删改)

a: 在光标的后面开始插入字符
A 在一行的结尾处开始插入字符
i 在光标处插入字符
I 在一行的开头处开始插入字符
o 在光标所在位置的下一行打开新行插入
O 在光标所在位置的上一行打开新行插入
ea 从当前单词末尾开始插入(非常实用)
dd 剪切当前行:,删除多行:3dd(表示删除从光标位置开始的连续3行)
dw 剪切单词,可以实现清空右侧空白符。
J(大写) 将下一行合并到当前行
r 替换单个字母,注意如果是替换为大写字母,建议用shift加目标字母触发,而不要用 caps lock。一个是从操作角度考虑,还得多余按一下 caps lock 还原操作;另一个是很多仿 vim 编辑器不识别 caps lock 按键
操作括号内内容:
ci'、ci"、ci(、ci[、ci{、ci< 分别更改这些配对标点符号中的文本内容
di'、di"、di(、di[、di{、di< 分别删除这些配对标点符号中的文本内容
yi'、yi"、yi(、yi[、yi{、yi< 分别复制这些配对标点符号中的文本内容
vi'、vi"、vi(、vi[、vi{、vi< 分别选中这些配对标点符号中的文本内容
c本身的意思是改变,即删除并进入插入模式。
cc 清空当前行, 然后进入插入模式
cw 修改单词。修改光标位置到单词结尾处的单词。
caw 修改单词。修改光标所在的整个单词,即所在的整个单词全部删除后进入插入模式。
ct{某个字母} 修改单词。修改光标位置到某个字母之间的单词,只要碰到首字母就返回。

多窗口、多文件编辑

多窗口

(^表示ctrl)
^wv垂直分割窗口(复制一个本窗口,其实是公用一个 buffer)
^wn水平分割出新的未命名窗口
^wr向右或向下方交换窗口,而^wR则和它方向相反
^ww切换窗口,forcus 和 blur 的切换
^wo只保留当前窗口(window only)
:close 关闭当前窗口

多缓冲区文件

:ls 列出所有打开的缓冲区文件(等价于 :buffers
:b {number, expression} 跳转到指定缓冲区
:bd 关闭当前的单个缓冲区文件(注意关闭窗口不会关闭缓冲区文件)
ctrl+6 切换到下一个文件(必须事先打开过其他文件才可以切换)

多页签

:tabc 关闭当前页签
gt 切换页签(vim 命令模式)

按不同模式划分出的命令

命令行模式(Command-line mode)

主要是对文件整体进行的操作,包括设置,查找
:tab 文件路径 同时编辑多个文件 gt 进行切换不同Tab键
命令行模式下取到从第几行到第几行.表示当前行 ,1,.表示从第一行到当前行 ,比如:1,.d就同样表示删除所有
echo $VIM(注意大小写)显示全局.vimrc的位置
:help {命令}必要时刻去求助 help
:map 查看当前键盘映射有哪些

插入模式(Insert mode)

移动光标:原生的是上下左右键,可以映射配置成ctrl键控制

inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>

命令模式(也称普通模式)(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
yy复制当前行。经常与p键连用,用作复制粘贴
yw复制单词。
p粘贴。p表示粘贴别的东西进入vim
u撤销
ctrl+r重做(注意不是command)
ZZ(注意是大写) 保存并退出vim
>><<单行缩进(即使光标在行中间位置也可以)
J 合并两行
. 重复上一次命令

可视模式(Visual mode)

用途:选择文件的一部分内容,以便作比如删除,复制等工作
o切换可视模式的选中端点
复制选中区域: y

选择模式(Select mode)

gh进入选择模式,然后移动光标开始选中。当再按下字符时可直接进行替换。

命令模式→可视模式
v一个字符一个字符的选择
V一整行一整行的选择
ctrl+v列选取模式,可以选取竖行文本

其他综合功能划分出的命令

  • 保存并退出vim::wqZZ:x

  • 底行命令行字符替换:
    :#,#s/old/new/g 其中 #,# 代表的是替换操作的若干行中首尾两行的行号。
    :%s/old/new/g 则是替换整个文件中的每个匹配串。等价于%s;old;new;g(用分号做替换分隔符也可以)

  • 查找功能:向前搜索/searchStr 向后搜索?search_text

  • 全选:ggVG
    稍微解释一下上面的命令
    gg 让光标移到全文开头
    V 是进入Visual(可视)模式,并且是整行整行选取
    G 光标移到最后一行

  • 全文格式化(format)缩进:gg=G

  • 防止粘贴时由智能缩进造成排版混乱::set paste

  • 临时返回命令行界面以及重返vim
    mac 下可以使用 ctrl+z (挂起vim)以及 fg(bring to foreground) 来返回 VIM
    但在 cmder 中似乎不起作用,可以尝试使用:sh来退出默认shell,返回命令行界面以及exit来返回VIM

  • 如何查看vim 是否具有某个功能
    vi --version |grep clipboard查看是否具有clipboard 功能,有+则表明由此功能。-则表明无此功能。clipboard 命令会影响vim中的复制是否能复制到系统剪贴板。

  • 上下移动某单行
    :{原始行号} m {移动到的目标行号} 移动到第几行(注意不是相对距离是绝对距离),从 0 开始计算。
    :m +1 下移 1行
    :m -2 上移 1行
    或者dd{k、j移动}p也不错。

  • {行数}G转到指定的行数,比如:9G,转到第9行。建议 G 用shift+g 触发,而不要用 caps lock + g 触发。

  • 插入列(等价于多光标输入)
    ctrl+v进入可视列模式
    shift+i从可视列模式进入插入模式,并输入要插入的内容
    Esc退回到命令模式,在每行的选定区域内新增选中的内容。


其他

vim不支持在command按键上绑定快捷键
操作系统差异。windows系统下用gvim命令,linux系统下用vim命令。

插件

emmet-vim插件
<c-y>,来触发标签扩展,也可以自制 snippet 看链接,具体没研究过。

nerdtree插件——file drawer
深入使用 nerdtree(好多快捷键需要进一步学习)

  • 在vim 中唤醒 nerdtree 操作区:
    tt (自制快捷键)命令模式下切换目录文档
  • 在 nerdtree 操作区的一些基本操作:
    q退出操作区
    ?切换帮助菜单
    go 预览文件内容

vim-autoformat插件
:Autoformat自动格式化,目前针对 html

[ctrlp] fuzzy file finder (尚未使用)
[fugitive] Git Tool。有一些 Git 的高级用法,比如迅速切换各个版本的 commit 代码,一个按键多次还原代码。比如能看到各个行代码是谁提交的。

Vim 寄存器

  • 使用d, c, s, x等会删除字符的命令时,被删除字符会进入匿名寄存器""。
  • "*"+在Mac和Windows中,都是指系统剪切板(clipboard),例如"*yy即可复制当前行到剪切板。
  • 寄存器被存储在 ~/.viminfo 中, 在下次重启vim时仍会加载
  • 查看 VIM 寄存器的内容,通过:reg
    非常系统的博客

vim中的配置项

vim的set relativenumberset number有冲突部分,set number必须是在set relativenumber之后做。

参考资料

总有你要的编程书单(GitHub)https://juejin.im/entry/5920f4f0a0bb9f005f4d9535
vim插件 http://vimawesome.com/
[vim 切换页签快捷键(还没完全应用成功)]https://www.liurongxing.com/vim-tab-shortcut.html
方方老师的配置:https://github.com/FrankFang/dot-files/blob/master/vimrc

边角知识学习

y 代表从缓冲区拉至寄存器
.vimrc 设置缩进之道

相关文章

  • Python学习笔记-第十八天

    Django官方学习笔记Django快速搭建blogrunoob Django教程vim python搭建1vim...

  • vim学习笔记

    三种模式 vim分为3种模式:一般模式,编辑模式,命令行模式。 1. 一般模式 打开文档即为一般模式。 移动移动光...

  • 【vim】学习笔记

    按功能划分出命令 光标移动 w移动光标到下一个单词的词首,b移动光标到上一个单词的词首;e移动光标到下一个单词的结...

  • VIM学习笔记

    一些迟疑,还是决定要好好掌握vim 基本操作键

  • vim 学习笔记

    0. Install MacVim 1. 使用 Vundle 管理插件 1.1. Set up Vundle 1....

  • vim学习笔记

    vim 配置文件 在vim启动过程中,首先将查找配置文件并执行其中的命令,配置文件有三类 vimrc gvimrc...

  • VIM学习笔记

    原文地址:LoveDev 移动 单词移动 整行移动 根据行号来移动 行位置插入 tips1:10I*先输...

  • Vim学习笔记

    基础部分 安装Vim 打开官网的页面如下: 下载安装 下载结束之后安装成功如下 为什么下载下来是三个文件呢?用哪一...

  • Vim 学习笔记

    http://einverne.github.io/post/2015/05/vim-notes.html#adv...

  • Vim 学习笔记

    概念 什么是 vim Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富...

网友评论

      本文标题:【vim】学习笔记

      本文链接:https://www.haomeiwen.com/subject/iueytxtx.html