






















vim 小技巧
noremap <F6> <ESC>:!ctags -R *<CR>:set tags=./tags,./TAGS,tags,TAG<CR>
noremap <F6> <ESC>:!cscope -Rbq *<CR><CR>:cs add cscope.out
首先需要注意的是 vim 有三种工作模式: visual, insert, normal;
然后 map 分为两种:map(递归映射),noremap(非递归映射,not recursive map);
解释一下这里映射的概念:
如果存在映射: A -> B and B -> C
如果是递归映射:则在执行 A 的时候最终会执行到 C 代表的命令。
如果是非递归的: 执行 A 时只会执行到 B。
然后是作用域的说明:
n normal
v visual + option
s option(在可是模式下 C^ + G 进入)
x 可视
o 操作符等
! 插入和命令行
i 插入
I 插入,命令行和 Lang-Arg
c 命令行
功能域说明:
递归映射
nore 映射
un 取消映射
clear 取消所有
然后就有:
nmap, xmap, smap, noremap, nnoremap, nunmap ...
具体参考 :help map
VIM 7.0 开始支持标签页打开方式
:tabnew [cmd] [file_path] // 打开一个标签页
:tabc // 关闭当前标签页
:tabo // 关闭其他标签页
:tabs // 显示所有标签叶打开的文件
:tabp [n] or gT // 切换到前一标签页
:tabn [n] or gn // 切换到后一标签页
:tabfirst // 切换到第一个标签签页
:tablast // 切换到最后一个标签页
:tab split // 在新的标签页中打开当前缓冲区文件
:tabf // 搜索当前目录中的文件并打开,如 :tabf img.*
:tabm [n] // 移动到第 n 个标签页处
:set showtabline=[1,2,3] // 0 完全不显示标签栏;1 只有用户新建时才显示;2 总是现实标签栏
:tabdo [cmd] // 执行命令,将作用到标签叶中,比如: :tabdo %s/food/drink/g 将替换多个标签文件中的 food 为 drink
:%s/pattern/replace/gc // % 标定范围,也可以用具体多少行到多少行表示,比如当前替换规则适用于 10 到 20 行,则可以这样写 10,20
// pattern 正则表达式
// replace 需要替换的字符串,可以用 & 表示之前匹配到的目标串
:%g/pattern/d // 删除匹配到的行
:%g!/pattern/d // 删除除匹配行的所有行
:%v/pattern/d // 删除除匹配行的所有行
set statusline+=%F, 如果你的状态栏还是没有变化,那么你还需要加上 set laststatus=2
Ctr g 查看
:help syntax.txt
| value | 解释 |
|---|---|
:set foldenable or :set foldmethod=manual or :set foldmethod=marker
indent 的时候,可以通过 foldlevel=1 来修改缩进的级别。python 一般默认支持。
| 快捷键 | 功能 |
|---|---|
syntax on
set number"
set ruler
set incsearch
set hlsearch
set hls
set ignorecase
set smartcase
set showmode
set list
set listchars=tab:>.,trail:.
set shiftwidth=4
set tabstop=4
set expandtab
set nobackup
set splitbelow
set splitright
set autoindent
set foldmethod=indent
set laststatus=2
set colorcolumn=81
color desert
set cursorline
set cursorcolumn
hi CursorLine term=bold cterm=bold ctermbg=Black guibg=Grey40
hi CursorColumn ctermbg=None ctermfg=White
hi CursorColumn term=bold cterm=bold ctermbg=None ctermfg=White
hi Search term=bold cterm=bold ctermfg=yellow ctermbg=black
hi ColorColumn ctermbg=DarkGrey
set history=1000
set wildmenu
set wildmode=list:longest
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
set nocompatible
filetype on
filetype plugin on
filetype indent on
set cursorline
set mouse=r
function CreateTags()
exec ':!ctags -R -f ./tags'
endfunction
nmap :call CreateTags()
:SPUpdate SpaceVim 打开 SpaceVim 的插件管理器,更新 SpaceVim:h SpaceVim-options 查看 spaceVim 的所有配置~/.SpaceVim.d/init.toml 用户的 SpaceVim 的配置目录SPC t 进入 SpaceVim 的控制面板SPC t t 打开标签管理器SPC f t 或者 F3 打开文件树SPC v d 打开当前配置F2 打开关闭语法树~/.SpaceVim/autoload/SpaceVim.vim 文件中 g:spacevim_lint_on_save 参数为 0, 可禁止 SpaceVim 在编写代码时候弹出语法检查看板..[$] <()> cat ~/.SpaceVim.d/init.toml
[options]
colorscheme = "gruvbox"
colorscheme_bg = "dark"
enable_guicolors = false
statusline_separator = "nil"
statusline_iseparator = "bar"
buffer_index_type = 4
windows_index_type = 3
enable_tabline_filetype_icon = false
enable_statusline_mode = false
statusline_unicode_symbols = false
vimcompatible = true
default_indent = 4
expand_tab = true
autocomplete_method = "deoplete"
snippet_engine = "ultisnips"
# Enable autocomplete layer
[[layers]]
name = 'autocomplete'
auto_completion_return_key_behavior = "nil"
auto_completion_tab_key_behavior = "smart"
auto_completion_delay = 200
auto_completion_complete_with_key_sequence = "nil"
auto_completion_complete_with_key_sequence_delay = 0.1
[[layers]]
name = 'shell'
default_position = 'top'
default_height = 30
[[layers]]
name = "lang#c"
enable_clang_syntax_highlight = true
[layer.clang_std]
c = "c11"
cpp = "c++1z"
objc = "c11"
objcpp = "c++1z"
[[layers]]
name = "lsp"
filetypes = [
"c",
"cpp"
]
[layers.override_cmd]
c = ["clangd", "--limit-results=5"]
cpp = ["clangd", "--limit-results=5"]
原创文章,版权所有,转载请获得作者本人允许并注明出处
我是留白;我是留白;我是留白;(重要的事情说三遍)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。