使用 vim 需要知道的几个小技巧

vim 如何去掉某个设置,比如去掉行号?
  1. 去掉某个设置可以在设置项前加 no,比如设置显示行号 set number,去掉行号 set nonumber;设置自动缩进 set autoindent,去年自动缩进设置 set noautoindent

autoindent 可以对编辑的 c 语言文件等代码文件自动缩进。这个功能跟文件后缀有关系。比如 vim a.c

  1 /*
  2  * 
  3  *
  4  */

注释 * 前面自动加了空格。

vim 如何设置tab缩进为 4 个空格?
  1. 设置缩进 tab 为4个空格
set tabstop=4
set shiftwidth=4
set expandtab
vim 里如何设置搜索,比如搜索字符串时不区分大小写?
  1. 查找不区分大小写 ignorecase
set hlsearch
set ignorecase
set smartcase
set incsearch
set wrapscan
从网上粘贴代码段到 vim 里, 如何使格式不乱?
  1. 粘贴网上的代码段,格式不乱使用 set paste
    该命令使vim 进行 paste mode,有很多设置被重置失效,比如 autoindent。关掉 pasteset nopaste。或者在~/.vimrc 中设置 set pastetoggle=<F8> 使用 <F8> 进行切换 paste 模式。

查看 paste 的手册 :help set

When the ‘paste’ option is switched on (also when it was already on):
- mapping in Insert mode and Command-line mode is disabled
- abbreviations are disabled
- ‘autoindent’ is reset
- ‘expandtab’ is reset
- ‘formatoptions’ is used like it is empty
- ‘revins’ is reset
- ‘ruler’ is reset
- ‘showmatch’ is reset
- ‘smartindent’ is reset
- ‘smarttab’ is reset
- ‘softtabstop’ is set to 0
- ‘textwidth’ is set to 0
- ‘wrapmargin’ is set to 0
These options keep their value, but their effect is disabled:
- ‘cindent’
- ‘indentexpr’
- ‘lisp’

vim 里的代码如何高亮?
  1. 代码高亮什么的还是建议直接在网上找一个 colorscheme 比如 solarized 。我现在用的配置放在了 github 上。my-vim-config
vim 如何开启多个窗口,vim 多窗口之间如何复制文本?
  1. split 多个窗口,并且多个窗口之前拷贝字符文本
    split 创建上下两个窗口,vsplit 创建左右两个并列窗口
    窗口之间拷贝,在 visual 模式使用 y (yank) 命令进行复制,然后切换到粘贴的窗口 用p (put) 粘贴到当前光标后,P (put) 粘贴到当前光标前。CTRL - ww 切换到下一个窗口,CTRL - wp 切换到上一个窗口
vim 如何开启标签页,vim 多个标签页之间如何切换?
  1. :tabe /path/to/another/file 创建多个标签 tab 窗口,通过 gtgT 切换标签窗口。
vim 如何使用系统剪贴板,vim如何复制文本到系统剪贴板?

8: vim 复制文本到系统剪贴板,需要 +clipboard。首先检查当前版本是否支持。
在 bash 中,vim --version | grep clipboard

[user@loc ~]$ vim --version | grep clipboard
-clipboard         +jumplist          +persistent_undo   +vartabs
+eval              +mouse_gpm         +syntax            -xterm_clipboard

-clipboard, -xterm_clipboard 表示不支持
+clilpboard+xterm_clipboard 表示支持
或者在 vim 里,使用 :echo has('clipboard') ,返回 1 表示支持,0 表示不支持

Fedora 中可以安装 vim-X11 (gvim, vimx),sudo dnf install vim-X11 来获得支持.

$ vimx --version | grep clipboard
+clipboard         +keymap            +printer           +vertsplit
+emacs_tags        +mouse_gpm         -sun_workshop      +xterm_clipboard
[user@loc ~]$ gvim --version |grep clipboard
+clipboard         +keymap            +printer           +vertsplit
+emacs_tags        +mouse_gpm         -sun_workshop      +xterm_clipboard

安装好后,需要运行 vimx 或者 gvim -v
打开后,使用剪贴板相关命令"+(quoteplus) 加上 put 和 yank, "+p 三个字符进行 put 粘贴,"+y 进行 yank 复制。

也可以修改~/.vimrc 进行键盘快捷键映射,CTRL-p 从系统剪贴板粘贴, CTRL-y 复制到系统剪贴板

nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+p
vnoremap <C-p> "+p

所用到的包: vim-common-8.1.2198-1.fc29.x86_64vim-X11-8.1.2198-1.fc29.x86_64vim-minimal-8.1.450-1.fc29.x86_64vim-enhanced-8.1.2198-1.fc29.x86_64

使用 vim 注意积累一些小技巧就行了,没必要搭建成 IDE。

ref:
[1] https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
[2] https://vi.stackexchange.com/questions/2063/how-do-i-get-clipboard-support-in-fedora-20
[3] https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
[4] https://vim.fandom.com/wiki/Accessing_the_system_clipboard

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值