gVim编辑器 您所在的位置:网站首页 打开注册表编辑器的方法 gVim编辑器

gVim编辑器

2023-04-20 19:43| 来源: 网络整理| 查看: 265

  gVim是一款强大的编辑器,可以满足大部分语言的编程需要。尤其是其自带的模板定制功能对于Verilog来说非常受用。然而gVim有很多操作是不同于其他编辑器的,这让很多初学者望而却步,因此,本文将gVim的一些常用技巧列举了出来。

一、_vimrc中可能用到的设置 1.gVim的默认设置

  安装和配置好gVim后,在Program Files (x86)\Vim目录下有个“_vimrc”文件,双击选择gVim软件打开,这里可以对gVim进行一些默认设置,我的设置如下所示 

1 "乱码设置 2 "----------------------------------------------------------------- 3 let &termencoding=&encoding 4 set fileencodings=utf-8,gbk,gb18030,gb2312,cp936,ucs-bom,latin1 5 6 "常用设置 7 "----------------------------------------------------------------- 8 set showmatch "高亮显示匹配的括号 9 set matchtime =2 "高亮括号的闪烁时间 10 set shiftwidth =4 "自动缩进符 11 set tabstop =4 "tab制表符 12 set softtabstop =4 "4个空格符视为tab符 13 set expandtab "tab符视为空格符 14 set smarttab "使用退格键时辨别tab 15 set number "行号显示 16 "set cursorline "突出显示当前行 17 set lbr "折行显示时不折断单词 18 set guifont=Consolas:h16 "Consolas字体和16字号 19 "set guifont=Courier_New:h16 "Courier_New字体和16字号 20 "set guifont=新宋体:h16:cGB2312 "新宋体,16字号,gb2312编码方式 21 set nobackup "不生成备份文件~ 22 set noswapfile "不生成交换文件.swp 23 "set lines=30 columns=100 "启动时窗口大小设置 24 au GUIEnter * simalt ~x "启动时窗口最大化 25 "set nowrap "不折行 26 "set guioptions+=b "添加水平滚动条 27 filetype indent on "载入相关缩进格式实现自动缩进

  这些设置都写了注释,就不一一解释了。重点说一下乱码现象,什么情况会出现乱码?

  ①小伟用gVim编写.v文件里面有中文注释,文件被gVim默认保存为ANSI格式。之后小马用quartus ii打开此文件看到中文是乱码。

  ②小马很生气,于是用quartus ii在里面写了一句 I am angry 并保存,因为里面有中文(虽然是乱码)所以文件被quartus ii默认保存为UTF-8格式。之后小伟用gVim打开此文件看到所有中文都乱码了,全乱套了!

  这是因为quartus ii默认的文件编码格式是ANSI,而当里面有中文时则保存为UTF-8。gVim默认情况下不管有没有中文都是ANSI。quartus ii无法识别ANSI格式下的中文,而gVim又无法识别UTF-8格式下的中文。能不能把gVim设置成和quartus ii一样,无中文时是ANSI格式有中文时是UTF-8格式呢?可以的,只要在“_vimrc”文件里添加了上述代码中3-4行语句,这样使得gVim编码和显示时都按utf-8,gbk,gb18030,gb2312,cp936,ucs-bom,latin1的顺序去探测,这样用gVim保存文件时和quartus ii编码方式完全一致,无中文时是ANSI格式,有中文时是UTF-8格式,而且查看文件时也不再显示乱码了。(看.v文件是什么编码格式保存的只要.v文件右键选择记事本打开,点另存为就能看到编码格式了。)网上很多别的教程说修改encoding=utf-8,可是这样一改菜单就乱码了,于是又加一些改变菜单乱码的语句,打开一看貌似好了。如果你这样做会发现两个问题:一是这种方式下中文的双引号 “ ” 是不正常显示的;二是这种方式下模板定制时不能出现汉字,否则调出模板时的汉字是乱码。所以还是按上面的方法来吧。

  补充:

        ③问题解决后,小蔡用quartus ii打开.v文件后,又用gVim打开这个.v文件修改并保存,回到quartus ii界面加载内容后发现这个里面的中文又乱码了!说好的解决乱码呢?

   对于这种情况就算换成notepad++也是一样乱码,纯粹是因为quartus ii自带的编译器太垃圾了。所以quartus ii自带编译器打开了代码时最好直接在里面修改保存,或者叉掉.v文件后再用第三方编译器修改保存。当然,如果弃用quartus ii自带编译器,让quartus ii与第三方编译器直接关联好,那么这个问题也就不存在了。

 

2.gVim多标签设置(慎用)

  gVim是默认无标签的,多标签打开文件需要用命令,Windows下还是有点麻烦。但是可以通过对注册表进行操作达到默认多标签的修改。方法:

  ①打开Windows系统注册表,桌面左下角输入regedit即可进入注册表。

  ②找到"HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command,如下图所示:

     ③在“ab默认”那鼠标右键点击修改,将其修改为 D:\Program Files\Vim\vim72\gvim.exe -p --remote-tab-silent "%1"

  这样用gVim打开多个文件时它就自动启用多标签模式了。

  缺点,无法再另外打开一个窗口显示代码,所以是否要这样设置得看个人喜好了。同时由于更改了注册表,可能导致Windows状态栏中的gVim图标异常显示,只需要按以下步骤即可恢复:

  ①新建TXT文档

  ②写上以下代码

taskkill /im explorer.exe /f cd /d %userprofile%\appdata\local del iconcache.db /a start explorer.exe exit

  ③文档重命名为xxx.bat

  ④双击允许,重启软件

  ⑤若无法解决,就以管理员身份运行

 

二、常用命令 1 一、编辑模式(i键光标停在左侧,a键光标停在右侧) 2 3 1.补全:ctrl + p,按住ctrl键再按p键可以进行代码选择,按Enter键确认 4 5 6 二、命令模式(Esc键) 7 8 1.复制、粘贴、删除 9 (1)yy :光标所在行,复制整行 10 (2)y5y :光标所在行往下数,复制5行 11 (3)p :光标所在行,粘贴 12 (4)5p :光标所在行往下数,粘贴5次 13 (5)dd :光标所在行,删除整行 14 (6)d5d :光标所在行往下数,删除5行 15 16 2.搜索 17 (1)搜索单个单词 :*键 18 (2)搜索单词局部 :/需要选中的代码,按Enter键。 19 (3)搜索字符“/” :需添加\,如“/\/”表示搜索字符“/” 20 (4)向上搜索 :N 21 (5)向下搜索 :n 22 (6)退出 ::noh,按Enter键 23 24 3.跳转 25 (1)文件头 :gg 26 (2)文件尾 :G 27 (3)第7行 ::7,按Enter键 28 (4)行头 :^ 29 (5)行尾 :$ 30 31 4.替换 32 (1)局部替换 :第20行到第30行的i0替换成i1::20,30s/i0/i1/gc,按Enter键,按y表同意替换,按n表跳过的替换 33 (2)全局替换 ::%s/i0/i1/gc,按Enter,按Enter键,按y表同意替换,按n示跳过替换 34 35 5.分窗口 36 (1)上下窗口 ::sp,按Enter键 37 (2)左右窗口 ::vs,按Enter键 38 (3)退出 ::q,按Enter键 39 40 6.列操作: 41 (1)选中 :按住Alt键,用鼠标键选中范围 42 (2)删除 :选中需要删除的范围,按删除键 43 (3)插入 :输入数据,再按ese退出 44 45 46 三、列操作模式(命令模式下按ctrl + q键) 47 48 1.选中 :hjkl表示左下上右 49 2.删除 :按delete删除 50 3.插入 :按I再输入数据,按ese退出 51 4.鼠标 :可先鼠标选中范围,再ctrl+q进入列操作模式 52 5.如果不习惯,建议直接使用命令模式下的列操作方法 53 54 55 四、其他常用功能 56 57 1.代码文件对比功能 58 菜单 >>> 文件 >>> 分割比较,把文件添加进来,gVim自动分成两个窗口,自动将异同显示高亮 59 60 2.录制命令功能 61 qa开始录制,开始操作命令,q结束录制,100@a表示重复命令100次

 

三、gVim中文速查表(搬运) 1 ############################################################################## 2 # VIM CHEATSHEET (中文速查表) - by skywind (created on 2017/10/12) 3 # Version: 43, Last Modified: 2018/12/26 15:17 4 # https://github.com/skywind3000/awesome-cheatsheets 5 ############################################################################## 6 7 8 ############################################################################## 9 # 光标移动 10 ############################################################################## 11 12 h 光标左移,同 键 13 j 光标下移,同 键 14 k 光标上移,同 键 15 l 光标右移,同 键 16 CTRL-F 下一页 17 CTRL-B 上一页 18 CTRL-U 上移半屏 19 CTRL-D 下移半屏 20 0 跳到行首(是数字零,不是字母O),效用等同于 键 21 ^ 跳到从行首开始第一个非空白字符 22 $ 跳到行尾,效用等同于 键 23 gg 跳到第一行,效用等同于 CTRL+ 24 G 跳到最后一行,效用等同于 CTRL+ 25 nG 跳到第n行,比如 10G 是移动到第十行 26 :n 跳到第n行,比如 :10 是移动到第十行 27 10% 移动到文件 10% 处 28 15| 移动到当前行的 15列 29 w 跳到下一个单词开头 (word: 标点或空格分隔的单词) 30 W 跳到下一个单词开头 (WORD: 空格分隔的单词) 31 e 跳到下一个单词尾部 (word: 标点或空格分隔的单词) 32 E 跳到下一个单词尾部 (WORD: 空格分隔的单词) 33 b 上一个单词头 (word: 标点或空格分隔的单词) 34 B 上一个单词头 (WORD: 空格分隔的单词) 35 ge 上一个单词尾 36 ) 向前移动一个句子(句号分隔) 37 ( 向后移动一个句子(句号分隔) 38 } 向前移动一个段落(空行分隔) 39 { 向后移动一个段落(空行分隔) 40 移动到下一行首个非空字符 41 + 移动到下一行首个非空字符(同回车键) 42 - 移动到上一行首个非空字符 43 H 移动到屏幕上部 44 M 移动到屏幕中部 45 L 移动到屏幕下部 46 fx 跳转到下一个为 x 的字符,2f/ 可以找到第二个斜杆 47 Fx 跳转到上一个为 x 的字符 48 tx 跳转到下一个为 x 的字符前 49 Tx 跳转到上一个为 x 的字符前 50 ; 跳到下一个 f/t 搜索的结果 51 , 跳到上一个 f/t 搜索的结果 52 按住 SHIFT 按左键,向左移动一个单词 53 按住 SHIFT 按右键,向右移动一个单词 54 按住 SHIFT 按上键,向上翻页 55 按住 SHIFT 按下键,向下翻页 56 gm 移动到行中 57 gj 光标下移一行(忽略自动换行) 58 gk 光标上移一行(忽略自动换行) 59 60 61 ############################################################################## 62 # 插入模式:进入退出 63 ############################################################################## 64 65 i 在光标处进入插入模式 66 I 在行首进入插入模式 67 a 在光标后进入插入模式 68 A 在行尾进入插入模式 69 o 在下一行插入新行并进入插入模式 70 O 在上一行插入新行并进入插入模式 71 gi 进入到上一次插入模式的位置 72 退出插入模式 73 CTRL-[ 退出插入模式(同 ESC 等价,但更顺手) 74 75 76 ############################################################################## 77 # INSERT MODE - 由 i, I, a, A, o, O 等命令进入插入模式后 78 ############################################################################## 79 80 光标向上移动 81 光标向下移动 82 光标向左移动 83 光标向右移动 84 按住 SHIFT 按左键,向左移动一个单词 85 按住 SHIFT 按右键,向右移动一个单词 86 按住 SHIFT 按上键,向上翻页 87 按住 SHIFT 按下键,向下翻页 88 上翻页 89 下翻页 90 删除光标处字符 91 Backspace 向后删除字符 92 光标跳转行首 93 光标跳转行尾 94 CTRL-W 向后删除单词 95 CTRL-O 临时退出插入模式,执行单条命令又返回插入模式 96 CTRL-\ CTRL-O 临时退出插入模式(光标保持),执行单条命令又返回插入模式 97 CTRL-R 0 插入寄存器(内部 0号剪贴板)内容,CTRL-R 后可跟寄存器名 98 CTRL-R " 插入匿名寄存器内容,相当于插入模式下 p粘贴 99 CTRL-R = 插入表达式计算结果,等号后面跟表达式 100 CTRL-R : 插入上一次命令行命令 101 CTRL-R / 插入上一次搜索的关键字 102 CTRL-F 自动缩进 103 CTRL-U 删除当前行所有字符 104 CTRL-V {char} 插入非数字的字面量 105 CTRL-V {number} 插入三个数字代表的 ascii/unicode 字符 106 CTRL-V 065 插入 10进制 ascii 字符(两数字) 065 即 A字符 107 CTRL-V x41 插入 16进制 ascii 字符(三数字) x41 即 A字符 108 CTRL-V o101 插入 8进制 ascii 字符(三数字) o101 即 A字符 109 CTRL-V u1234 插入 16进制 unicode 字符(四数字) 110 CTRL-V U12345678 插入 16进制 unicode 字符(八数字) 111 CTRL-K {ch1} {ch2} 插入 digraph(见 :h digraph),快速输入日文或符号等 112 113 114 ############################################################################## 115 # 文本编辑 116 ############################################################################## 117 118 r 替换当前字符 119 R 进入替换模式,直至 ESC 离开 120 s 替换字符(删除光标处字符,并进入插入模式,前可接数量) 121 S 替换行(删除当前行,并进入插入模式,前可接数量) 122 cc 改写当前行(删除当前行并进入插入模式),同 S 123 cw 改写光标开始处的当前单词 124 ciw 改写光标所处的单词 125 caw 改写光标所处的单词,并且包括前后空格(如果有的话) 126 c0 改写到行首 127 c^ 改写到行首(第一个非零字符) 128 c$ 改写到行末 129 C 改写到行尾(同c$) 130 ci" 改写双引号中的内容 131 ci' 改写单引号中的内容 132 cib 改写小括号中的内容 133 cab 改写小括号中的内容(包含小括号本身) 134 ci) 改写小括号中的内容 135 ci] 改写中括号中内容 136 ciB 改写大括号中内容 137 caB 改写大括号中的内容(包含大括号本身) 138 ci} 改写大括号中内容 139 cit 改写 xml tag 中的内容 140 cis 改写当前句子 141 c2w 改写下两个单词 142 ct( 改写到小括号前 143 x 删除当前字符,前面可以接数字,3x代表删除三个字符 144 X 向前删除字符 145 dd 删除当前行 146 d0 删除到行首 147 d^ 删除到行首(第一个非零字符) 148 d$ 删除到行末 149 D 删除到行末(同 d$) 150 dw 删除当前单词 151 diw 删除光标所处的单词 152 daw 删除光标所处的单词,并包含前后空格(如果有的话) 153 di" 删除双引号中的内容 154 di' 删除单引号中的内容 155 dib 删除小括号中的内容 156 di) 删除小括号中的内容 157 dab 删除小括号内的内容(包含小括号本身) 158 di] 删除中括号中内容 159 diB 删除大括号中内容 160 di} 删除大括号中内容 161 daB 删除大括号内的内容(包含大括号本身) 162 dit 删除 xml tag 中的内容 163 dis 删除当前句子 164 d2w 删除下两个单词 165 dt( 删除到小括号前 166 dgg 删除到文件头部 167 dG 删除到文件尾部 168 d} 删除下一段 169 d{ 删除上一段 170 u 撤销 171 U 撤销整行操作 172 CTRL-R 撤销上一次 u 命令 173 J 链接多行为一行 174 . 重复上一次操作 175 ~ 替换大小写 176 g~iw 替换当前单词的大小写 177 gUiw 将单词转成大写 178 guiw 将当前单词转成小写 179 guu 全行转为小写 180 gUU 全行转为大写 181 增加缩进 183 == 自动缩进 184 CTRL-A 增加数字 185 CTRL-X 减少数字 186 187 188 ############################################################################## 189 # 复制粘贴 190 ############################################################################## 191 192 p 粘贴到光标后 193 P 粘贴到光标前 194 v 开始标记 195 y 复制标记内容 196 V 开始按行标记 197 CTRL-V 开始列标记 198 y$ 复制当前位置到本行结束的内容 199 yy 复制当前行 200 Y 复制当前行,同 yy 201 yiw 复制当前单词 202 3yy 复制光标下三行内容 203 v0 选中当前位置到行首 204 v$ 选中当前位置到行末 205 viw 选中当前单词 206 vib 选中小括号内的东西 207 vi) 选中小括号内的东西 208 vi] 选中中括号内的东西 209 viB 选中大括号内的东西 210 vi} 选中大括号内的东西 211 vis 选中句子中的东西 212 vab 选中小括号内的东西(包含小括号本身) 213 va) 选中小括号内的东西(包含小括号本身) 214 va] 选中中括号内的东西(包含中括号本身) 215 vaB 选中大括号内的东西(包含大括号本身) 216 va} 选中大括号内的东西(包含大括号本身) 217 gv 重新选择上一次选中的文字 218 :set paste 允许粘贴模式(避免粘贴时自动缩进影响格式) 219 :set nopaste 禁止粘贴模式 220 "?yy 复制当前行到寄存器 ? ,问号代表 0-9 的寄存器名称 221 "?d3j 删除光标下三行内容,并放到寄存器 ? ,问号代表 0-9 的寄存器名称 222 "?p 将寄存器 ? 的内容粘贴到光标后 223 "?P 将寄存器 ? 的内容粘贴到光标前 224 :registers 显示所有寄存器内容 225 :[range]y 复制范围,比如 :20,30y 是复制20到30行,:10y 是复制第十行 226 :[range]d 删除范围,比如 :20,30d 是删除20到30行,:10d 是删除第十行 227 ddp 交换两行内容:先删除当前行复制到寄存器,并粘贴 228 "_[command] 使用[command]删除内容,并且不进行复制(不会污染寄存器) 229 "*[command] 使用[command]复制内容到系统剪贴板(需要vim版本有clipboard支持) 230 231 232 ############################################################################## 233 # 文本对象 - c,d,v,y 等命令后接文本对象,一般为: 234 ############################################################################## 235 236 $ 到行末 237 0 到行首 238 ^ 到行首非空字符 239 tx 光标位置到字符 x 之前 240 fx 光标位置到字符 x 之处 241 iw 整个单词(不包括分隔符) 242 aw 整个单词(包括分隔符) 243 iW 整个 WORD(不包括分隔符) 244 aW 整个 WORD(包括分隔符) 245 is 整个句子(不包括分隔符) 246 ib 小括号内 247 ab 小括号内(包含小括号本身) 248 iB 大括号内 249 aB 大括号内(包含大括号本身) 250 i) 小括号内 251 a) 小括号内(包含小括号本身) 252 i] 中括号内 253 a] 中括号内(包含中括号本身) 254 i} 大括号内 255 a} 大括号内(包含大括号本身) 256 i' 单引号内 257 a' 单引号内(包含单引号本身) 258 i" 双引号内 259 a" 双引号内(包含双引号本身) 260 2i) 往外两层小括号内 261 2a) 往外两层小括号内(包含小括号本身) 262 2f) 到第二个小括号处 263 2t) 到第二个小括号前 264 265 266 ############################################################################## 267 # 查找替换 268 ############################################################################## 269 270 /pattern 从光标处向文件尾搜索 pattern 271 ?pattern 从光标处向文件头搜索 pattern 272 n 向同一方向执行上一次搜索 273 N 向相反方向执行上一次搜索 274 * 向前搜索光标下的单词 275 # 向后搜索光标下的单词 276 :s/p1/p2/g 将当前行中全替换p1为p2 277 :%s/p1/p2/g 将当前文件中全替换p1为p2 278 :%s/p1/p2/gc 将当前文件中全替换p1为p2,并且每处询问你是否替换 279 :10,20s/p1/p2/g 将第10到20行中所有p1替换为p2 280 :%s/1\\2\/3/123/g 将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注) 281 :%s/\r//g 删除 DOS 换行符 ^M 282 283 284 ############################################################################## 285 # VISUAL MODE - 由 v, V, CTRL-V 进入的可视模式 286 ############################################################################## 287 288 > 增加缩进 289 ' 位于行:

  解决办法:删除C:\Users\lenovo\_viminfo   

  亲测有效!

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有