vi basic, vim basic command

vi/vim basic, command commands vim -u NONE -N -n bigfile.txt # -u NONE: 不加载配置文件 # -u 后面跟的是要加载的配置文件路径。 # -u NONE:不加载任何配置,相当于“安全模式”或“干净模式”。 # -N: 启用现代兼容模式(非 Vi) # -n: 不创建 swap 文件 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode) Command mode, 命令模式: 用户启动Vim之后,vim 默认是在命令模式。 Insert mode, 输入模式: i 切换到插入模式 Last line mode,底线命令模式: : 切换到底线命令模式 快捷键 ctrl + d 向下滚动半屏 ctrl + u 向上滚动半屏 基本插入 i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, 按 esc 进入命令模式,就会出现 8 个=。 这在插入分割线时非常有用,如`30i+<esc>`就插入了 36 个+组成的分割线。 I: 在当前行第一个非空字符前插入; gI: 在当前行第一列插入; a: 在光标后插入; A: 在当前行最后插入; o 小写 `o` 在当前行的下边插入新行, 在当前行的下边插入一行. O 大写 `O` 在当前行的上边插入新行. :r filename 在当前位置插入另一个文件的内容。 :[n]r filename 在第 n 行插入另一个文件的内容。 :r !date 在光标处插入当前日期与时间。同理,:r !command 可以将其它 shell 命令的输出插入当前文档。 escape/ESC 回到命令模式 ^v char 插入时忽略char的指定意义,这是为了插入特殊字符 vim 编辑二进制文件 # 注意用 -b,否则后面会有 0a vim -b test.bin # 以 16 进制格式查看 :%!xxd # 编辑完成后转换为二进制文件 :$!xxd -r :wq # force write :w! ### vim utf8 乱码 #### 查看文件编码 :set fileencoding # 临时显示行号 :set number # 不自动换行 :set nowrap # 自动换行 :set wrap 如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: ...

2022-12-15 · 6 min · 1261 words · -

Vim光标移动

Vim 光标移动 搜索结果之间跳转 文件之间移动 Vim 最大的特征与最大的困难就是键盘操作,所以快速移动光标是 Vim 的最基本技能。光标移动可以配合其他快捷键使用,比如 y, x, d, v,更好地掌握了光标移动也就更好地掌握了其他编辑技能。 上下左右:以字符为单位 进入 Vim 的 normal 模式(如果你在 visual 模式或者 insert 模式,可以按若干次 Esc 回到 normal 模式)。 h 向左移动一个字符。 j 向下移动一个字符。 k 向上移动一个字符。 l 向右移动一个字符。 和其他快捷键一样,可以配合数字来移动多个字符,比如 5l 向左移动 5 个字符。 以单词为单位移动 多数情况下单词移动比字符移动更加高效,比如要走到当前变量名前加一个 let。 w 移动到下一个单词的词首。 b 移动到上一个单词的词首。 e 移动到下一个单词的结尾。 单词移动同样支持数字前缀,比如 4w 可以向后移动 4 个单词。此外大写的 W, B, E 具有同样的功能,只不过小写用标点符号来分隔单词,大写用空格来分隔单词,更适合在代码里移动。 以行为单位移动 ^ 移动到行首第一个词的首字母。 | 移动到行首第一个字符。 $ 移动到行尾。 j 移动到下一行。 k 移动到上一行。 :10 移动光标到文件第 10 行。可以 :set number 来让 vim 显示行号。 gg 移动到文件首行。 G 移动到文件尾行。 上下行移动的命令同样可以加数字,比如 10j 向下移动 10 行。 ...

2021-07-22 · 1 min · 184 words · -

vim 粘贴注释

vim 粘贴注释 vim在粘贴代码时会自动缩进,这样会把有注释的代码搞得一团糟,可能因为某行的一个注释造成后面的代码全部被注释掉,以前就是直接粘贴的,发现不得不解决这个自动添加注释的问题。 临时方法: vim 是自带缩进的,我们执行粘贴前需要设置为粘贴模式: set paste 当我们写代码时需要缩进,进而,在粘贴完了需要改回来: set no paste 一劳永逸方法: 为了避免麻烦,我们可以为vim设置快捷键: 在/etc/vim中,修改vimrc,追加代码: vim /etc/vim/.vimrc 追加代码: set pastetoggle=<F9> 这样你每次粘贴前就按一下F9,完事之后再F9切回来,OK! vim粘贴注释-解决方法 http://www.chenglin.name/linux/blog-linux/595.html/embed#?secret=QDy4MQGTrl

2020-04-22 · 1 min · 23 words · -

VIM 列编辑

VIM 列编辑 VIM的列编辑操作 插入列 插入操作的话知识稍有区别。例如我们在每一行前都插入"() " 光标定位到要操作的地方。 CTRL+v 进入"可视块" 模式, 选取这一列操作多少行。 SHIFT+i(I) 然后输入要插入的内容。此时输入的内容只会出现在光标所在的行. ESC 按两次, 会在每行的选定的区域出现插入的内容。 删除列 光标定位到要操作的地方。 CTRL+v 进入"可视 块"模式,选取这一列操作多少行。 d 删除。 https://www.cnblogs.com/xiaowant/articles/1992923.html

2018-12-25 · 1 min · 24 words · -

Vim 查找, 替换

Vim 查找, 搜索, find 查找 在 normal 模式下按下 / 即可进入查找模式 (向下查找, ? 向上查找), 输入要查找的字符串并按下回车。 Vim 会跳转到第一个匹配。 按下 n 查找下一个, 按下 N 查找上一个。 换行符 \n https://blog.kuretru.com/posts/67976692/ /foo.*\n.*bar 大小写敏感 \c, \C # 大小写不敏感 /foo\c # 大小写敏感 /foo\C 大小写敏感配置 Vim 默认采用大小写敏感的查找, 为了方便我们常常将其配置为大小写不敏感 “设置默认进行大小写不敏感查找 set ignorecase “如果有一个大写字母, 则切换到大小写敏感查找 set smartcase vim 正则表达式 Vim 查找支持正则表达式, 例如 /vim$ 匹配行尾的 “vim”。 需要查找特殊字符需要转义,例如 /vim$ 匹配 “vim$"。 注意查找回车应当用\n,而替换为回车应当用\r (相当于<CR>) 。 将会查找所有的"foo”,“FOO”,“Foo"等字符串。 将上述设置粘贴到你的~/.vimrc,重新打开Vim即可生效。 查找当前单词 在normal模式下按下*即可查找光标所在单词 (word) , 要求每次出现的前后为空白字符或标点符号。例如当前为foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。 ...

2018-12-19 · 2 min · 394 words · -

vim 宏录制

vim 宏录制 在编辑某个文件的时候,可能会出现需要对某种特定的操作进行许多次的情况,以编辑下面的文件为例: ;=====================================================================================;This is a sample configuration file when upgrading XXX using InstallShield.;Author: ini_always;Date: 8/24/2011;Last modified: 9/20/2011;Note: Install script does NOT verify whether the configuration file is in a "WELL";format, a WRONG format may lead to installation failure.;If more information is needed, please check the document for details.;===================================================================================== 这是一个ini类型的配置文件,可以看到每一行的最前面有一个逗号,现在如果需要将每行前面的逗号去掉,怎么办?在第一行行首按x,然后按j,然后按x…这样重复下去?确实,我最开始也是这样的,但如果这个文件有100行要这样修改呢?或者1000行? 好吧,少废话,进入正题。所谓宏,在vim里面是指某种特定顺序的一系列操作,我们可以录制自己的操作序列,然后重复这个序列多次,以简化某种重复的操作。vim宏有录制和播放的过程,录制就是你教给vim该怎么操作,播放就是vim照着你教的进行自动操作。因此,对于上面的文件处理,首先要进行宏录制: 把光标定位在第一行; 在normal模式下输入qa(当然也可以输入qb, qc, etc,这里的a, b, c是指寄存器名称,vim会把录制好的宏放在这个寄存器中)(PS: 如果不知道什么是vim的寄存器,请自行放狗搜之); 正常情况下, vim的命令行会显示"开始录制"的字样,这时候,把光标定位到第一个字符 (按0或者|) ,再按x删除,按j跳到下一行; normal模式下输入q,结束宏录制。 好了,经过以上步骤,我们定义了一个存储在寄存器a中的宏,它的操作序列是: 0->x->j,也就是跳到行首,删除,跳到下一行。 现在,第一行已经删除了行首的逗号,而且光标也已经在第二行,现在,在normal模式下输入@a,以播放我们刚录制好的存在寄存器a中的宏。于是,第二行行首的逗号也被删除,光标停在了第三行。 这也不简单啊?你肯定会这样想,要删除100行,我还得输入100个@a,我还不如手动删除呢。呵呵,vim早就想到了,输入7@a,好了,剩下的7行全部搞定了。 (PS: 在命令前面加数字,就是代表要执行这个命令多少次) ...

1 min · 71 words · -