vim(持续更新)

本文介绍了如何在VSCode中配置和使用Vim插件,包括设置快捷键、使用Vim的四种模式、光标移动、操作符、寄存器等,并提供了详细的快捷键示例。此外,还提到了在IDEA中配置Vim插件的方法,以及在Linux环境下自定义.vimrc文件。文章旨在帮助开发者提升使用Vim的效率。
摘要由CSDN通过智能技术生成

1.vscode+vim

学习资源链接

[学习视频推荐]( 指尖飞舞:vscode + vim 高效开发(系列视频)_哔哩哔哩_bilibili )

[csdn文章]( (121条消息) [Vim]Vscode 配置 Vim_Nutlets的博客-CSDN博客_vscodevim配置 )

vscode的配置文件

可以通过修改settings.json文件自己去配置自己的快捷键

    "update.mode": "manual",
    "vim.easymotion": true,
    "vim.incsearch": true,
    "vim.useSystemClipboard": true,
    "vim.useCtrlKeys": true,
    "vim.hlsearch": true,
    "vim.insertModeKeyBindings": [
        {
            "before": [
                "j",
                "k"
            ],
            "after": [
                "<Esc>"
            ]
        }
    ],
    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": [
                "<leader>",
                "d"
            ],
            "after": [
                "d",
                "d"
            ]
        },
        {
            "before": [
                "<C-n>"
            ],
            "commands": [
                ":nohl"
            ]
        },
        {
            "before": [
                "K"
            ],
            "commands": [
                "lineBreakInsert"
            ],
            "silent": true
        },
        {
            "before": [
                "<Up>"
            ],
            "after": [
                "<Nop>"
            ]
        },
        {
            "before": [
                "<Down>"
            ],
            "after": [
                "<Nop>"
            ]
        },
        {
            "before": [
                "<Left>"
            ],
            "after": [
                "<Nop>"
            ]
        },
        {
            "before": [
                "<Right>"
            ],
            "after": [
                "<Nop>"
            ]
        }
    ],
    "vim.leader": "<space>",
    //cancel those vim  shortcuts reflections,use normal shortcuts
    "vim.handleKeys": {
        "<C-a>": false, //collect all
        "<C-f>": false,
        "<C-v>": false,
        "<C-c>": false
    }

键盘图

在这里插入图片描述

vim键盘图

在这里插入图片描述

[完整链接]( 史上最全Vim快捷键键位图(入门到进阶) | 菜鸟教程 (runoob.com) )

2.VIM的快速入门

1.为什么学习vim

装逼

2.vim的四种模式

  • normal模式
  • insert模式

i在光标前插入–infront ,a在光标后面插入–after,o向下另起一行进行插入编辑,O向上另起一行

在这里插入图片描述

  • visual 模式
  • command 模式

按:(英文冒号)键

3.光标移动(普通模式下)

hjkl

  • w 跳到下一个单词的开头(常用)

  • b if光标在本单词开头,跳到上一个单词开头,否则本单词开头**(begin)**(常用)

  • e if 光标在本单词结尾,跳到下一个单词结尾,否则本单词结尾**(end)**

  • ge 上一个单词结尾(get end)


  • 0 跳到行首

  • ^ 跳到行首开始的第一个非空字符(可用H代替,映射)

  • $ 跳到行尾(可用大写L代替,映射)

  • gg 第一行 10gg或10G跳转到第10行

  • G 最后一行


f{char}向后找字母char
F{char}只能在这一行向前找字母char
;重复上次的字符查找操作

全文搜索

全文查找:/;用法是按下正斜线/,进入命令行模式,输入待查找的字符,然后回车,光标即可移动到匹配处;n(即next的缩写)移动到下一个匹配处,N移动到上一个匹配处。

全局替换

:[替换起始位置,末位置]/被替换/替换他的/参数[g]或[c]

全选删除和全选复制

ggdG
ggyG

动作

i(inner)a(around)
i"“(foo)”(“foo”)a"
iw(foo)( foo)foo前空格aw

ps:()中为选中内容

诸如"",(),{},[]等对称结构符号,i为选其中内容不包括符号,a包括内容和符号

4.操作符

  • x 删除当前光标下的字符
  • d(delete) dd删除一行,die(删除所有),dw删除一个单词
  • c(change) cc删除一行,并进入插入模式,cie(修改所有)
  • y(yank) yyp复制这一行,并复制到下一行
  • v(visual) 进入visual模式,可视模式=>选择?? 例子----"vjjjjj+y 选择多行复制

ps:d和c有剪切效果

  • u 撤销
  • . 重复上次操作
  • p (小写)粘贴到光标后
  • P(大写)粘贴到光标前
  • s 用一个新文本替换光标处字符
  • S 用新文本替换这一行
  • r字符换字符 (replace)
  • R 新文本替换与他等长的字符

组合键

  1. ciw 选中单词删除并进入插入模式

  2. yiw 选中并复制单词

  3. diw 选中并删除单词

  4. ci< 选中被<>包围的单词并修改

  5. h+dd/cc/yy 向下删除/修改/复制n行,包括当前行

  6. d/c/y+ f{char} 删除/修改/复制到向后的char字符

  7. d/c/y+^/$ 删除/修改/复制到开头/结尾切换大小写

5. 切换大小写

  • ~ 将光标下的改变大小写
  • 3~ 将光标位置开始的3个字母改变大小写
  • g~~ 改变当前行的字母大小写
  • gUU 改当前行全部为大写
  • guu 当前行全部为小写
  • gUaw 将光标下的单词改成小写
  • guaw 将光标下的单词改成大写

6.tips

  • g+d go to document相当于ctrl+左点击
  • 如何缩进

在插入模式下,tab键即可

normal模式下,** >> 缩进, << **取消缩进

7.问题及解决办法

1.在insert模式下按jj无法变成normal模式

**解决办法:**将settings.json文件复制到全局设置中去

8.vi与vim与neovim

[vi与vim的区别以及常用命令]( (122条消息) vi与vim的区别以及常用命令_巴卡巴卡哇的博客-CSDN博客_vi和vim )

’ vim’是vi的升级版

9.翻屏

Ctrl+f: 向下翻一屏;
Ctrl+b: 向上翻一屏;
Ctrl+d: 向下翻半屏; //d可理解为down
Ctrl+u: 向上翻半屏 //u可理解为up

3.vim+IDEA

配置文件 .ideavimc

inoremap jk <ESC>

nnoremap <Down> <Nop>
nnoremap <Up> <Nop>
nnoremap <Right> <Nop>
nnoremap <Left> <Nop>

nnoremap L $
nnoremap H ^
" vim的默认寄存器与系统剪切板共存
set clipboard+=unnamed
set history=100000
set keep-english-in-normal
"" plugins
Plug 'https://github.com/tpope/vim-surround'
set surround

set scrolloff=5

" Do incremental searching.
set incsearch

" Don't use Ex mode, use Q for formatting.
map Q gq

如何在normal模式下禁止中文输入,将中文输入全部变为英文输入

[解决方法]( (124条消息) 改善编程体验: IdeaVimExtension介绍 _weixin_34405925的博客-CSDN博客 )

4.vim+linux

自定义配置文件

vim ~/.vimrc
  1"set 前加冒号:与不加,一样
  2 : set nu
  3 inoremap jk <ESC>
  4 : syntax on
  5 "设置行号
  6 set number
  7 :set clipboard=""
  8 "关闭报错音
  9 set noeb
 10 "设置背景 参数为[dark][light]
 11 set bg=dark
 12 set ruler
 13 set showmode
 14 set hlsearch

文件操作

vim 文件名??
q 退出quit
w 保存write
:wq 保存退出
:q! 不保存退出
:e!放弃修改,恢复原样

vim与寄存器

寄存器:存储文件内容的容器,类似于windows系统下的剪切板clipboard

查看寄存器内容
:reg [寄存器名称]

在这里插入图片描述

Type说明:

In the output above, the Type column means the type of the content. It may contain three different values:

  • c – characterwise text
  • l – linewise text
  • b – blockwise text

寄存器分类

无名寄存器 “”缓存最后一次操作内容
数字寄存器 "0-"9“0 缓存最近一次复制操作 "1~"9最近一到九次删除操作
具名寄存器 ”a"z或“A"Z定义寄存器的名字
模式寄存器 ”/缓存最近搜索命令
只读寄存器 “:”. "% "#最近插入命令,最近插入文本 ,当前文件名 ,当前交替文件名
黑洞…
表达式…
选择与拖曳…
行内…

关于寄存器的复制与粘贴操作

"nyy n可以为字母或数字,复制到"n寄存器中
"b3yy 复制当前行和下面2行 到 “b 字母寄存器
“ap 粘贴 “a 字母寄存器的内容

[相关问题]( (126条消息) vim中寄存器使用和vim标记。_rainysia的博客-CSDN博客_vim 寄存器 )

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值