vim配置文件

合集下载

NVIM配置打造

NVIM配置打造

NVIM 配置打造NVIM 配置NVIM安装NVIM 配置init.vimvimrc.vim# 安装 NVIMbrew install nvimbrew install ranger# 需要有 python3 ⽀持brew install python3brew install node# 对 nvim 添加 python ⽀持pip3 install neovim pynvim# 输⼊ nvim 检测:checkhealthmkdir -p ~/.config/nvimnvim ~/.config/nvim/init.vim" 配置⽂件导⼊ "{{{" ---------------------------------------------------------------------" 基础使⽤习惯配置runtime ./vimrc.vim" 插件管理"./lua/plugins.lualua require('plugins')" 按键映射runtime ./maps.vimnvim ~/.config/nvim/vimrc.vim"----vim 个⼈使⽤习惯配置start------set encoding=UTF-8" leader 设置成空格let mapleader=" "" 使⽤⿏标set mouse=c" 显⽰⾏号set nu" 相对⾏号set relativenumber" tab=4个空格set tabstop=4set shiftwidth=4" 改变 vim 中光标的形状let g:db_ui_use_nerd_fonts=1let &t_SI.="\e[5 q" "SI = INSERT modelet &t_SR.="\e[4 q" "SR = REPLACE modelet &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)" ⾼度光标所在⾏"set cursorline" 设置不换⾏"set nowrapset wrap" 显⽰按下的按键set showcmd" 按tab 显⽰菜单set wildmenu" 不需要备份⽂件set nobackup"----vim 个⼈使⽤习惯配置end------"ssh 远程粘贴板if executable('clipboard-provider')let g:clipboard = {\ 'name': 'myClipboard',\ 'copy': {\ '+': 'clipboard-provider copy',\ '*': 'env COPY_PROVIDERS=tmux clipboard-provider copy',\ },\ 'paste': {\ '+': 'clipboard-provider paste',\ '*': 'env COPY_PROVIDERS=tmux clipboard-provider paste',\ },\ }endif"随机选⼀个颜⾊风格function RandomColorScheme()let mycolors = split(globpath(&rtp,"**/colors/*.vim"),"\n")exe 'so ' . mycolors[localtime() % len(mycolors)]unlet mycolorsendfunction"call RandomColorScheme():command NewColor call RandomColorScheme()" ⽂件类型设置 "{{{" ---------------------------------------------------------------------" JSX 语法⾼亮" set filetypes as typescriptreactautocmd BufNewFile,BufRead *.tsx,*.jsx,*.js set filetype=typescriptreact" 添加头部⽂件function HeaderPython()call setline(1, "#!/usr/bin/env python")call append(1, "# -*- coding: utf-8 -*-")call append(2, "# SR @ " . strftime('%Y-%m-%d %T', localtime()))normal Gnormal onormal oendfautocmd bufnewfile *.py call HeaderPython()maps.vimnvim ~/.config/nvim/maps.vim"-------------------------------------------------------------------------------" window"-------------------------------------------------------------------------------" Split windownmap ss :split<Return><C-w>wnmap sv :vsplit<Return><C-w>w" Move window"nmap <Space> <C-w>w"map s<left> <C-w>h"map s<up> <C-w>k"map s<down> <C-w>j"map s<right> <C-w>lmap sh <C-w>hmap sk <C-w>kmap sj <C-w>jmap sl <C-w>l" Resize window" 在mac/linux中使⽤Alt键,在webssh" 中alt没⽤,就使⽤Ctrl,WEBSSH主要的WINDOWS中使⽤nmap <M-left> <C-w><nmap <C-left> <C-w><nmap s<left> <C-w><nmap <M-right> <C-w>>nmap <C-right> <C-w>>nmap s<right> <C-w>>nmap <M-up> <C-w>+nmap <C-up> <C-w>+nmap s<up> <C-w>+nmap <M-down> <C-w>-nmap <C-down> <C-w>-nmap s<down> <C-w>-" 插⼊模式移动光标inoremap <C-h> <Left>inoremap <C-j> <Down>inoremap <C-k> <Up>inoremap <C-l> <Right>inoremap <C-d> <Delete>" hh在我⽤的单词⾥出现的频率极低,其实感觉home⽤的没有end多,统⼀风格都⽤⼤写的吧"inoremap HH <Home>" 单词中包含ll的太多了,所以⽤⼤写LL"inoremap LL <End>" jk <Esc>inoremap jk <Esc>" 插⼊模式⿏标滚轮抵消,不然会出现滚动⿏标录⼊了⼀堆5j5kinoremap 5k <Esc>inoremap 5j <Esc>inoremap 9<CR> <Esc>a" 快速跳转⾏⾸与⾏尾nnoremap L $nnoremap H ^" 向下5⾏noremap <C-j> 5j" 向上5⾏noremap <C-k> 5k" 保存noremap <C-s> :w<CR>noremap s :w<CR>" Coc智能处理,使⽤IDEA Alt+Enter 同样按键"noremap <M-Enter> :CocAction<CR>inoremap <C-s> <ESC> :w<CR>" 代码格式化noremap <leader>f :Format<CR>noremap <leader>r :luafile ~/.wp/lua/run.lua<CR>" 强制退出map Q :q<CR>"map qq :q<CR>" 重新加载设置map R :source $MYVIMRC<CR>"⾃动关闭标签inoremap <buffer> <C-v> <esc>yiwi<lt><esc>ea></><esc>hpF>iset iskeyword+=<,>iab <h1> <lt>h1> <lt>/h1><esc>5ha" 全选nmap <C-a> gg<S-v>G" 加/减数字1nnoremap + <C-a>nnoremap - <C-x>"-------------------------------------------------------------------------------" Buffers"-------------------------------------------------------------------------------" Open current directory" 插⼊模式移动光标inoremap <C-h> <Left>inoremap <C-j> <Down>inoremap <C-k> <Up>inoremap <C-l> <Right>inoremap <C-d> <Delete>" hh在我⽤的单词⾥出现的频率极低,其实感觉home⽤的没有end多,统⼀风格都⽤⼤写的吧"inoremap HH <Home>" 单词中包含ll的太多了,所以⽤⼤写LL"inoremap LL <End>" jk <Esc>inoremap jk <Esc>" 插⼊模式⿏标滚轮抵消,不然会出现滚动⿏标录⼊了⼀堆5j5kinoremap 5k <Esc>inoremap 5j <Esc>inoremap 9<CR> <Esc>a" 快速跳转⾏⾸与⾏尾nnoremap L $nnoremap H ^" 向下5⾏noremap <C-j> 5j" 向上5⾏noremap <C-k> 5k" 保存noremap <C-s> :w<CR>" Coc智能处理,使⽤IDEA Alt+Enter 同样按键noremap <M-Enter> :CocAction<CR>inoremap <C-s> <ESC> :w<CR>" 代码格式化"noremap <leader>f :Format<CR>" 强制退出map Q :q<CR>" 重新加载设置map R :source $MYVIMRC<CR>"⾃动关闭标签inoremap <buffer> <C-v> <esc>yiwi<lt><esc>ea></><esc>hpF>iset iskeyword+=<,>iab <h1> <lt>h1> <lt>/h1><esc>5ha" 全选nmap <C-a> gg<S-v>G" 加/减数字1nnoremap + <C-a>nnoremap - <C-x>"-------------------------------------------------------------------------------" Buffers"-------------------------------------------------------------------------------" Open current directory"nmap te :tabedit"nmap <S-Tab> :tabprev<Return>nmap <S-Tab> :bprev<Return>"nmap <Tab> :tabnext<Return>nmap <Tab> :bnext<Return>" 窗⼝管理器" invoke with '-'nmap - <Plug>(choosewin)"nmap sw <Plug>(choosewin)"nmap <leader>w <Plug>(choosewin)PS:⼀些插件的快捷键在末尾当所有插件都配置完毕的时候将快捷键加⼊该⽂件中packer 插件管理器mkdir -p ~/.config/nvim/luanvim ~/.config/nvim/plugins.lua---@diagnostic disable: undefined-global--在没有安装packer的电脑上,⾃动安装packer插件local fn = vim.fnlocal install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'if fn.empty(fn.glob(install_path)) > 0 then--fn.system({'git', 'clone', '--depth', '1', 'https:///wbthomason/packer.nvim', install_path}) --默认地址fn.system({'git', 'clone', '--depth', '1', 'https:///mirrors/wbthomason/packer.nvim.git', install_path}) --csdn加速镜像 vim.cmd 'packadd packer.nvim'end-- Only required if you have packer configured as `opt`vim.cmd [[packadd packer.nvim]]return require('packer').startup({function()use 'wbthomason/packer.nvim'-- Packer can manage itselfend,config = {max_jobs = 16,git = {default_url_format = "https:///%s"},display = {open_fn = function()return require('packer.util').float({ border = 'single' })end}}})# 插件安装⽅式PackerInstall插件配置字体配置# 终端安装该字体并且选择该字体防⽌乱码brew tap homebrew/cask-fontsbrew install font-hack-nerd-font --casklualine标签栏美化安装配置bufferline 状态栏安装配置nvim ~/.config/nvim/lua/plugins.lua--状态栏插件use {"nvim-lualine/lualine.nvim",requires = {"kyazdani42/nvim-web-devicons", opt = true}}nvim ~/.config/nvim/after/plugin/lualine.lualocal status, lualine = pcall(require, "lualine")if (not status) thenreturnendlualine.setup {options = {icons_enabled = true,theme = "auto",component_separators = {left = " ", right = " "},section_separators = {left = " ", right = " "},disabled_filetypes = {},always_divide_middle = true},sections = {lualine_a = {"mode"},lualine_b = {"branch","diff"--{"diagnostics", sources = {"nvim_lsp"}}},lualine_c = {"filename"},lualine_x = {{"diagnostics", sources = {"nvim_lsp"}, symbols = {error = " ", warn = " ", info = " ", hint = " "}},"encoding","fileformat","filetype"},lualine_y = {"progress"},lualine_z = {"location"}},inactive_sections = {lualine_a = {},lualine_b = {},lualine_c = {"filename"},lualine_x = {"location"},lualine_y = {},lualine_z = {}},tabline = {},extensions = {}}-- bufferline 显⽰标签页,与lualine 配合使⽤use "akinsho/bufferline.nvim"nvim ~/.config/nvim/after/plugin/bufferline.lualocal status, bufferline = pcall(require, "bufferline")if (not status) thenreturnendvim.opt.termguicolors = truebufferline.setup {options = {--numbers = "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,--numbers = "both",--- @deprecated, please specify numbers as a function to customize the styling--number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2 --number_style = "none",close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"-- NOTE: this plugin is designed with this icon in mind,-- and so changing this is NOT recommended, this is intended-- as an escape hatch for people who cannot bear it for whatever reasonindicator_icon = "",buffer_close_icon = " ",modified_icon = "●",close_icon = " ",dashboard 开屏插件安装配置left_trunc_marker = " ",right_trunc_marker = " ",--- name_formatter can be used to change the buffer's label in the bufferline.--- Please note some names can/will break the--- bufferline so use this at your discretion knowing that it has--- some limitations that will *NOT* be fixed.name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"-- remove extension from markdown files for exampleif :match("%.md") thenreturn vim.fn.fnamemodify(, ":t:r")endend,max_name_length = 15,max_prefix_length = 12, -- prefix used when a buffer is de-duplicatedtab_size = 15,--diagnostics = false | "nvim_lsp" | "coc",diagnostics = "nvim_lsp",diagnostics_update_in_insert = false,--[[diagnostics_indicator = function(count, level, diagnostics_dict, context)return "(" .. count .. ")"end,]]-- rest of config ...--- count is an integer representing total count of errors--- level is a string "error" | "warning"--- diagnostics_dict is a dictionary from error level ("error", "warning" or "info")to number of errors for each level. --- this should return a string--- Don't get too fancy as this function will be executed a lotdiagnostics_indicator = function(count, level, diagnostics_dict, context)local icon = level:match("error") and " " or " "return " " .. icon .. countend,-- NOTE: this will be called a lot so don't do any heavy processing herecustom_filter = function(buf_number)--如果是defx 则隐藏local finded, _ = string.find(vim.bo[buf_number].filetype, "defx")if finded ~= nil thenreturn falseendreturn trueend,--offsets = {{filetype = "NvimTree", text = "File Explorer" | function , text_align = "left" | "center" | "right"}}, --show_buffer_icons = true | false, -- disable filetype icons for buffersshow_buffer_icons = true, -- disable filetype icons for buffers--show_buffer_close_icons = true | false,show_buffer_close_icons = false,--show_close_icon = true | false,show_close_icon = false,--show_tab_indicators = true | false,show_tab_indicators = true,persist_buffer_sort = true, -- whether or not custom sorted buffers should persist-- can also be a table containing 2 custom separators-- [focused and unfocused]. eg: { '|', '|' }--separator_style = "slant" | "thick" | "thin" | {"any", "any"},separator_style = "thin",--enforce_regular_tabs = false | true,enforce_regular_tabs = false,--always_show_bufferline = true | false,always_show_bufferline = true--[[sort_by = "id" | "extension" | "relative_directory" | "directory" | "tabs" | function(buffer_a, buffer_b)-- add custom logicreturn buffer_a.modified > buffer_b.modifiedend]]}}--按键映射--nnoremap <silent> gb :BufferLinePick<CR>vim.api.nvim_set_keymap("n", "gb", "<Cmd>BufferLinePick<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>1", "<Cmd>BufferLineGoToBuffer 1<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>2", "<Cmd>BufferLineGoToBuffer 2<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>3", "<Cmd>BufferLineGoToBuffer 3<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>4", "<Cmd>BufferLineGoToBuffer 4<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>5", "<Cmd>BufferLineGoToBuffer 5<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>6", "<Cmd>BufferLineGoToBuffer 6<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>7", "<Cmd>BufferLineGoToBuffer 7<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>8", "<Cmd>BufferLineGoToBuffer 8<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>9", "<Cmd>BufferLineGoToBuffer 9<CR>", {noremap = true, silent = true}) use {"glepnir/dashboard-nvim"}nvim ~/.config/nvim/after/plugin/dashboard.lualocal vim = vimvim.g.dashboard_custom_header = {""," ⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⠞⠉⢉⣭⣿⣿⠿⣳⣤⠴⠖⠛⣛⣿⣿⡷⠖⣶⣤⡀⠀⠀⠀ "," ⠀⠀⠀⠀⠀⠀⠀⣼⠁⢀⣶⢻⡟⠿⠋⣴⠿⢻⣧⡴⠟⠋⠿⠛⠠⠾⢛⣵⣿⠀⠀⠀⠀ "," ⣼⣿⡿⢶⣄⠀⢀⡇⢀⡿⠁⠈⠀⠀⣀⣉⣀⠘⣿⠀⠀⣀⣀⠀⠀⠀⠛⡹⠋⠀⠀⠀⠀ "," ⣭⣤⡈⢑⣼⣻⣿⣧⡌⠁⠀⢀⣴⠟⠋⠉⠉⠛⣿⣴⠟⠋⠙⠻⣦⡰⣞⠁⢀⣤⣦⣤⠀ "," ⠀⠀⣰⢫⣾⠋⣽⠟⠑⠛⢠⡟⠁⠀⠀⠀⠀⠀⠈⢻⡄⠀⠀⠀⠘⣷⡈⠻⣍⠤⢤⣌⣀ "," ⢀⡞⣡⡌⠁⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢿⡀⠀⠀⠀⠸⣇⠀⢾⣷⢤⣬⣉ "," ⡞⣼⣿⣤⣄⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠸⣿⣇⠈⠻ "," ⢰⣿⡿⢹⠃⠀⣠⠤⠶⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠀⣿⠛⡄⠀ "," ⠈⠉⠁⠀⠀⠀⡟⡀⠀⠈⡗⠲⠶⠦⢤⣤⣤⣄⣀⣀⣸⣧⣤⣤⠤⠤⣿⣀⡀⠉⣼⡇⠀ "," ⣿⣴⣴⡆⠀⠀⠻⣄⠀⠀⠡⠀⠀⠀⠈⠛⠋⠀⠀⠀⡈⠀⠻⠟⠀⢀⠋⠉⠙⢷⡿⡇⠀ ",defx ⽂件插件安装" ⣻⡿⠏⠁⠀⠀⢠⡟⠀⠀⠀⠣⡀⠀⠀⠀⠀⠀⢀⣄⠀⠀⠀⠀⢀⠈⠀⢀⣀⡾⣴⠃⠀ "," ⢿⠛⠀⠀⠀⠀⢸⠁⠀⠀⠀⠀⠈⠢⠄⣀⠠⠼⣁⠀⡱⠤⠤⠐⠁⠀⠀⣸⠋⢻⡟⠀⠀ "," ⠈⢧⣀⣤⣶⡄⠘⣆⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠻⣄⠀⠀⠀⢀⣠⡾⠋⢀⡞⠀⠀⠀ "," ⠀⠀⠻⣿⣿⡇⠀⠈⠓⢦⣤⣤⣤⡤⠞⠉⠀⠀⠀⠀⠈⠛⠒⠚⢩⡅⣠⡴⠋⠀⠀⠀⠀ "," ⠀⠀⠀⠈⠻⢧⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣻⠿⠋⠀⠀⠀⠀⠀⠀ "," ⠀⠀⠀⠀⠀⠀⠉⠓⠶⣤⣄⣀⡀⠀⠀⠀⠀⠀⢀⣀⣠⡴⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀ "," ","",}vim.g.dashboard_custom_section = {a = {description = { " 新 ⽂ 件 SPC fo" },command = "DashboardNewFile",},b = {description = { " 查找⽂件 SPC ff" },-- command = "Telescope fd",command = "Telescope fd find_command=fd,--hidden",},c = {description = { " 已⽤⽂件 SPC fh" },command = "Telescope oldfiles",},d = {description = { " 跳转标记 SPC fm" },command = "Telescope marks",},e = {description = { " 查看内容 SPC fw" },command = "Telescope live_grep",},f = {description = { " 查看主题 SPC tc" },command = "Telescope colorscheme",},g = {description = { " ∂ 查看命令 SPC fc" },command = "Telescope commands",},h = {description = { " 查看帮助 SPC fa" },command = "Telescope man_pages",},}vim.g.dashboard_disable_at_vimenter = 0vim.g.dashboard_footer_icon = " "vim.g.dashboard_preview_command = "bat"-- vim.g.dashboard_preview_pipeline = "lolcat -F 0.3"vim.g.dashboard_session_directory = "~/.config/nvim/.sessions"vim.g.dashboard_preview_file_height = 12vim.g.dashboard_preview_file_width = 80vim.g.dashboard_default_executive = "Telescope"# 安装-- ⽂件管理插件,类似与ranger 。

ubuntu16.04下vim的安装与配置

ubuntu16.04下vim的安装与配置

ubuntu16.04下vim的安装与配置⼀、安装vim使⽤命令 $ sudo apt-get install vim 来安装vim,安装后的vim需要进⾏⼀些配置,不然使⽤起来会有些不⽅便,⽐如不会⾃动缩进。

⼆、配置vim使⽤命令 $ vim /etc/vim/vimrc 修改vim配置⽂件 (修改该⽂件对所有⽤户都⽣效),在该⽂件最后添加如下代码:1 set ai " ⾃动缩进,新⾏与前⾯的⾏保持—致的⾃动空格2 set aw " ⾃动写,转⼊shell或使⽤:n编辑其他⽂件时,当前的缓冲区被写⼊3 set flash " 在出错处闪烁但不呜叫(缺省)4 set ic " 在查询及模式匹配时忽赂⼤⼩写5 set nu6 set number " 屏幕左边显⽰⾏号7 "set showmatch " 显⽰括号配对,当键⼊“]”“)”时,⾼亮度显⽰匹配的括号8 set showmode " 处于⽂本输⼊⽅式时加亮按钮条中的模式指⽰器9 set showcmd " 在状态栏显⽰⽬前所执⾏的指令,未完成的指令⽚段亦会显⽰出来10 set warn/nowarn " 对⽂本进⾏了新的修改后,离开shell时系统给出显⽰(缺省)11 set ws/nows " 在搜索时如到达⽂件尾则绕回⽂件头继续搜索12 set wrap/nowrap " 长⾏显⽰⾃动折⾏13 "colorscheme evening " 设定背景为夜间模式14 filetype plugin on " ⾃动识别⽂件类型,⾃动匹配对应的, “⽂件类型Plugin.vim”⽂件,使⽤缩进定义⽂件15 set autoindent " 设置⾃动缩进:即每⾏的缩进值与上⼀⾏相等;使⽤ noautoindent 取消设置16 set cindent " 以C/C++的模式缩进17 set noignorecase " 默认区分⼤⼩写18 set ruler " 打开状态栏标尺19 set scrolloff=5" 设定光标离窗⼝上下边界 5 ⾏时窗⼝⾃动滚动20 set shiftwidth=4" 设定 << 和 >> 命令移动时的宽度为 421 set softtabstop=4" 使得按退格键时可以⼀次删掉 4 个空格,不⾜ 4 个时删掉所有剩下的空格)22 set tabstop=4" 设定 tab 长度为 423 set wrap " ⾃动换⾏显⽰24 syntax enable25 syntax on " ⾃动语法⾼亮注意第10、11、12⾏只能选⼀个值,不然会报错。

neovim 用法

neovim 用法

neovim 用法Neovim是一个现代化的文本编辑器,它是Vim的一个分支,提供了许多新的功能和改进。

下面是一些详细和精确的Neovim用法:1. 打开Neovim:在终端中输入`nvim`或者`neovim`命令来启动Neovim。

2. 打开文件:在Neovim中,可以通过输入文件路径来打开文件。

例如,要打开一个名为`myfile.txt`的文件,可以在命令模式下输入`:e myfile.txt`。

3. 编辑文本:在普通模式下,可以使用各种命令来编辑文本。

例如,要删除当前光标所在的字符,可以按下`x`键;要复制当前行,可以按下`yy`键;要粘贴已复制的文本,可以按下`p`键。

4. 切换模式:Neovim有三种模式,分别是普通模式、插入模式和可视模式。

普通模式用于导航和执行命令,插入模式用于输入文本,可视模式用于选择文本。

要从普通模式切换到插入模式,可以按下`i`键;要从插入模式返回普通模式,可以按下`Esc`键。

5. 保存文件:在普通模式下,可以使用`:w`命令来保存文件。

例如,要保存当前文件,可以在命令模式下输入`:w`并按下回车键。

6. 退出Neovim:在普通模式下,可以使用`:q`命令来退出Neovim。

如果当前文件有未保存的更改,可以使用`:q!`命令来强制退出而不保存更改。

7. 设置配置:Neovim的配置文件为`init.vim`,位于`~/.config/nvim/`目录下。

可以编辑该文件来自定义Neovim的行为和外观。

8. 插件管理:Neovim支持使用插件来扩展功能。

可以使用插件管理器(如Vim-Plug、Vundle、Pathogen等)来安装和管理插件。

安装插件后,可以在Neovim的配置文件中添加相应的配置来启用插件。

这些是Neovim的一些基本用法,你可以根据自己的需求进一步探索和学习Neovim的高级功能和命令。

【IT专家】vim配置及插件安装管理(超级详细)

【IT专家】vim配置及插件安装管理(超级详细)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系vim配置及插件安装管理(超级详细)2016/05/25 0 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, 工欲善其事, 必先利其器嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我今天教大家把gvim改装成一个简易IDE, 说它简易是界面上看起来简易, 但功能绝对不比一个好的IDE差, 该有的功能都有, 不该有的功能也有, 你就自己没事偷着乐吧, 下面我开始介绍今天的工作了.本文会教你:1. 中文帮助手册的安装2. vim编程常用命令3. 语法高亮4. 在程序中跳来跳去: Ctags 的使用5. 教你高效地浏览源码-- 插件: TagList6. 文件浏览器和窗口管理器-- 插件: WinManager7. Cscope 的使用8. QuickFix 窗口9. 快速浏览和操作Buffer -- 插件: MiniBufExplorer10. c/h文件间相互切换-- 插件: A11. 在工程中查找-- 插件: Grep12. 高亮的书签-- 插件: VisualMark13. 自动补全14. 加速你的补全-- 插件: SuperTab本文不会教你:1. 如何使用vim. 本文不会从零开始教你如何使用vim, 如果你是第一次接触vim, 建议你先看看其他的vim入门的教程, 或者在shell下输入命令: vimtutor, 这是一个简单的入门教程.2. 编程技巧.3. vim脚本的编写.我的工作环境是: Fedora Core 5gvim是自己编译的7.0, 如果你还没有安装gvim, 请看我的这篇文章在Redhat Linux 9中编译和配置gvim 7.0 由于本人一直从事C 语言工作, 因此下面这些例子都是在C语言程序中演示的, 其他语言的没有试过, 如果有朋友在别的语言下有问题, 可以跟我讨论一些, 我会尽量帮助你们的.本文用的示范源码是vim7.1的源码, 可以在vim下载到源码包:vim-7.1.tar.bz2, 你也可以不用下载, 就用你自己程序的源码, 关系不---)对照上图的图标, 我在本文中将教会你以下这些功能:1简洁明了的Buffer浏览和操作2文件浏览器3tag浏览器4高亮的书签5更丰富的语法高亮6成员变量的下拉, 自动补全2中文帮助手册的安装vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难, 何况还有星级译王呢, 可偏偏有一帮人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......。

Vim命令列表

Vim命令列表

Vim命令列表操纵文件Vim命令动作:e filename 打开一个新文件,可以用TAB键自动补全:w filename 保存更改。

如果不指定文件名,Vim会存为你正在编辑的文件。

如果要存为不同的文件,需要指定文件名:q 退出Vim。

如果有未保存的更改,Vim会拒绝退出。

:q! 强制退出!:wq 写文件并退出:x 几乎和:wq一样,如果你修改了文件,它会写文件并退出。

如果你没有修改文件,Vim会不写文件直接退出。

文件内的移动These Vim commands and keys work both in command mode and visual mode.Vim命令动作j or Up Arrow 向上移动一行k or Down Arrow 向下移动一行l or Right Arrow 向右移动一个字符h or Left Arrow 向左移动一个字符e 移动到一个词(word)尾E 移动到白空格(whitespace)分隔的词尾b 移动到一个词(word)的开头B 移动到白空格(whitespace)分隔的词头0 移动到行首^ 移动到一行的首个非白空格的字符$ 移动到行尾H 移动到屏幕的第一行M 移动到屏幕的中间一行L 移动到屏幕的最后一行:n 跳至屏幕的第n行插入和替换文本Vim命令动作i 在光标之前插入I 在该行行首插入a 在光标之后插入A 在该行行尾插入o 在下一行新建一行并插入O 在上一行新建一行并插入C Change the rest of the current line.r 覆盖一个字符。

在覆盖完成以后,回到命令模式。

R 进入插入模式,但是不再是插入文本,而是覆盖文本。

跟word 里insert键的作用类似ESC 退出插入/改写模式,回到命令模式。

删除文本Vim命令动作x 删除光标后的字符X 删除光标前的字符dd or :d 删除当前行进入可视模式(Visual mode)Vim命令动作v 开始定义高亮字符,用定位键(j or 向下键等)来选择要高亮的文本。

vim代码补全终极配置

vim代码补全终极配置

vim代码补全终极配置1. 先来看看效果图2. 配置⽅法<1>.效果图下⾯的效果如如果没有特殊说明,均是不需要按代码提⽰的快捷键(例如ctrl+p等)的,看看效果,是不是很想visual assist。

1.1 结构struct和枚举enum代码提⽰:1.2 ⽤户定义函数代码提⽰1.3 ⽤户定义变量代码提⽰1.4 c++ class method代码提⽰:1.5 class属性代码提⽰1.6 c library代码提⽰<2>.配置⽅法2.1 安装ctags并⽣成tag⽂件安装ctagsxuqiang@ubuntu:~/Documents/vim/test$ sudo apt-get install ctags为linux下的c头⽂件⽣成tag⽂件,如果想要为其他的库⽣成tag⽂件,原理同下:xuqiang@ubuntu:~/Documents/vim/test$ sudo ctags -f c --recurse --verbose其中-f制定tag⽂件的名字,--recurse表明递归⽣成当前⽬录下的所有⽂件和⽂件夹。

--verbose表明在控制台中打印当前⽣成进度信息。

最好将⽣成的tag⽂件保存到⼀个特定的⽬录中,这⾥我是存放在了.vim下:xuqiang@ubuntu:~/.vim$ lsafter c-support exUtility-4.2.0 plugin tagsautoload doc ftplugin README.csupport2.2 下载插件下载插件(红⾊为本节配置使⽤到的插件),并存放在~/.vim/plugin/下。

|-- c.vim|-- neocomplcache.vim|-- snippet.vim|-- supertab.vim|-- taglist.vim2.3 .vimrc配置⽂件" prérequis tagsset nocpfiletype plugin on" configure tags - add additional tags here or comment out not-used ones" load user definition tags" set tags+=~/.vim/tags/stlset tags+=~/.vim/tags/c" linux header file tag" set tags+=~/.vim/tags/linuxkernel" set tags+=~/.vim/tags/sdl" set tags+=~/.vim/tags/qt4" build tags of your own project with CTRL+F12map <C-F11> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>noremap <F11> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<cr>inoremap <F11> <Esc>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<cr>" OmniCppComplete" let OmniCpp_NamespaceSearch = 1" let OmniCpp_GlobalScopeSearch = 1" let OmniCpp_ShowAccess = 1" let OmniCpp_MayCompleteDot = 1" let OmniCpp_MayCompleteArrow = 1" let OmniCpp_MayCompleteScope = 1" let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]" automatically open and close the popup menu / preview windowau CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endifset completeopt=menuone,menu,longest,previewlet g:SuperTabRetainCompletionType = 2let g:SuperTabDefaultCompletionType = "<C-X><C-O>"let g:AutoComplPop_MappingDriven = 0let g:acp_enableAtStartup = 1let g:acp_ignorecaseOption = 1let g:acp_completeOption = '.,w,b,k' " """""""""""""""""""""""""""""configuration for neocomplcache""""""""""""""""""""""""""""" Disable AutoComplPop.let g:acp_enableAtStartup = 0" Use neocomplcache.let g:neocomplcache_enable_at_startup = 1" Use smartcase.let g:neocomplcache_enable_smart_case = 1" Use camel case completion.let g:neocomplcache_enable_camel_case_completion = 1" Use underbar completion.let g:neocomplcache_enable_underbar_completion = 1" Set minimum syntax keyword length.let g:neocomplcache_min_syntax_length = 1" set the max list in the popup menu. increase the speedlet g:neocomplcache_max_list=20" Define keyword.if !exists('g:neocomplcache_keyword_patterns')let g:neocomplcache_keyword_patterns = {}endiflet g:neocomplcache_keyword_patterns['default'] = '\h\w*'let g:neocomplcache_auto_completion_start_length=1" ignore letter caselet g:neocomplcache_enable_ignore_case=1 " """""""""""""""""""""""""""""configuration for neocomplcache"""""""""""""""""""""""""""" " """"""""""""""""""""""""""auto complete () "" """""""""""""""""""""""""""""""""""""""":inoremap ( ()<ESC>i:inoremap ) <c-r>=ClosePair(')')<CR>:inoremap { {}<ESC>i:inoremap } <c-r>=ClosePair('}')<CR>:inoremap [ []<ESC>i:inoremap ] <c-r>=ClosePair(']')<CR>:inoremap < <><ESC>i:inoremap > <c-r>=ClosePair('>')<CR>function ClosePair(char)if getline('.')[col('.') - 1] == a:charreturn "\<Right>"elsereturn a:charendifendf" """"""""""""""""""""""""""auto complete () "" """""""""""""""""""""""""""""""""""""""" " """"""""""""""""""""""""""""line number"""""""""""""""""""""""""""""""""""""""""""""'set nu" """"""""""""""""""""""""""""line number""""""""""""""""""""""""""""""""""""""""""""" " """""""""""""""""""""""""""""auto indent """"""""""""""""""""""""""""""""""""""""set autoindentset cindent" """""""""""""""""""""""""""""auto indent """""""""""""""""""""""""""""""""""""""" " """""""""""""""""""""""""""""syntax on"""""""""""""""""""""""""""""""""""""""""""""syntax on" """""""""""""""""""""""""""""""syntax on """"""""""""""""""""""""""""""""""""""""""""需要注意的是,默认的情况下vim是不会加载 set tags+=~/.vim/tags/c⽂件的,需要使⽤命令:NeoComplCacheCachingTags 暂时仅仅能够完成的⼀个⽂件的代码提⽰,下⾯⼏篇中还将介绍如何使⽤vim来管理项⽬⽂件,如何使⽤vim来debug c程序。

vivim编辑器使用方法详解

vivim编辑器使⽤⽅法详解vi编辑器是所有Unix及系统下标准的编辑器,他就相当于系统中的记事本⼀样,它的强⼤不逊⾊于任何最新的⽂本编辑器。

他是我们使⽤系统不能缺少的⼯具。

由于对Unix及系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界⾥畅⾏⽆阻。

vim 具有程序编辑的能⼒,可以以字体颜⾊辨别语法的正确性,⽅便程序设计;vim可以当作vi的升级版本,他可以⽤多种颜⾊的⽅式来显⽰⼀些特殊的信息。

vim会依据⽂件扩展名或者是⽂件内的开头信息,判断该⽂件的内容⽽⾃动的执⾏该程序的语法判断式,再以颜⾊来显⽰程序代码与⼀般信息。

vim⾥⾯加⼊了很多额外的功能,例如⽀持正则表达式的搜索、多⽂件编辑、块复制等等。

这对于我们在Linux上进⾏⼀些配置⽂件的修改⼯作时是很棒的功能。

1.vi/vim是什么? ①vi是Visual Interface的缩写,即可视化接⼝ ②vim是vi iMprove的缩写,即 vi的增强版(具有语法着⾊功能)2.vim模式有哪些?如何切换? ①三种模式 命令模式(默认):刚进⼊vim的时候,默认就是命令模式,可以复制⾏,删除⾏等。

输⼊模式:可以输⼊内容。

末⾏模式:在最下边,除编辑模式,可以输⼊诸多管理员命令 ②模式转换 命令模式→输⼊模式: i:在当前光标所在字符的前⾯,转为输⼊模式 I:在当前光标所在⾏的⾏⾸转换为输⼊模式 a:在当前光标所在字符的后⾯,转为输⼊模式 A:在光标所在⾏的⾏尾,转换为输⼊模式 o:在当前光标所在⾏的下⽅,新建⼀⾏,并转为输⼊模式 O:在当前光标所在⾏的上⽅,新建⼀⾏,并转为输⼊模式 s:删除光标所在字符 r:替换光标处字符 输⼊模式→命令模式 ESC键 命令模式→末⾏模式 输⼊:即可转为末⾏模式 在末⾏模式下 10d:可删除第10⾏ 10,20d:删除10-20⾏ set nu:显⽰⾏号 !命令:可以执⾏bash命令末⾏模式-操作 末⾏模式→命令模式 ESC键 3.使⽤vim如何打开⽂件? ① vim /path/to/somefile :vim后跟⽂件路径及⽂件名,如果⽂件存在,则打开编辑⽂件窗⼝,如果⽂件不存在,则创建⽂件 [root@libaoliang ~]# vim /etc/inittab ② vim + # :打开⽂件,并定位到第#⾏,#代表数字 [root@libaoliang ~]# vim +3 /etc/inittab ③ vim + :打开⽂件,定位到最后⼀⾏ [root@libaoliang ~]# vim + /etc/inittab ④ vim +/PATTERN:打开⽂件,定位到第⼀次被PATTERN匹配到的⾏的⾏⾸ [root@libaoliang ~]# vim +/start /etc/inittab4.关闭⽂件 末⾏模式下:  w:保存 q:退出 wq 或 x:保存退出,wq 和 x 都是保存退出 q!:强制退出 w!:强制保存,管理员才有权限 命令模式下: ZZ:保存并退出5.移动光标 命令模式下: ①逐字符移动 h:向左 l:向右 j:向下 k:向上 #h:移动#个字符 ②以单词为单位移动 w:移到下⼀个单词的词⾸ e:跳⾄当前或下⼀个单词的词尾 b:跳⾄当前或上⼀个单词的词⾸ #w:表⽰移动#个单词 ③⾏内跳转 0:绝对⾏⾸ ^:⾏⾸第⼀个⾮空⽩字符 $:绝对⾏尾 ④⾏间跳转 #G:跳转到第#⾏ G:最后⼀⾏ 末⾏模式下: ①⾏间跳转 直接输⼊⾏号回车即可6.翻屏: 命令模式下 Ctrl+f:向下翻⼀屏 Ctrl+b:向上翻⼀屏 Ctrl+d:向下翻半屏 Ctrl+u:向上翻半屏 7.删除 命令模式下 ①删除单个字符: x:删除光标所在处单个字符 #x:删除光标所在处及向后共#个字符 ②删除命令:d d命令跟跳转命令组合使⽤如:d w 表⽰删除光标所在位置到下⼀个单词词⾸所有字符 #d w,#d e,#d b :#dw表⽰删除当前光标所在处及向后第#个单词词⾸所有字符 dd:删除当前光标所在⾏ #d d:删除包含当前光标所在⾏内的#⾏ 末⾏模式下:末⾏模式下位置符号StartADD,EndADDd .:表⽰当前⾏ $:最后⼀⾏ +#:向下的#⾏ $-#:向上的#⾏位置符号末⾏模式下,删除命令d可以跟以上位置符号相结合使⽤ StartADD,EndADD d:删除StartADD到EndADDd位置的所有⾏,例如:10,15d:删除10到15⾏所有内容 .d:删除光标所在⾏,同dd8.粘贴命令: p p(⼩写p):如果删除的或复制的为整⾏内容,则粘贴到光标所在⾏的下⽅,如果复制或删除的内容为⾮整⾏,则粘贴⾄光标所在字符的后⾯ P(⼤写P):如果删除的或复制的为整⾏内容,则粘贴到光标所在⾏的上⽅,如果复制或删除的内容为⾮整⾏,则粘贴⾄光标所在字符的前⾯9.复制命令:y ⽤法同d命令 命令模式 yy:复制当前⾏ yw (y#w,ye,y#e,yb,y#b):复制光标当前位置到下个单词词⾸内容.#代表数字 y#G:复制当前位置当#⾏处的所有内容 末⾏模式 StartADD,EndADD y:复制StartADD到EndADDd位置的所有⾏,例如:10,15d:复制10到15⾏所有内容 +3y:复制当前位置向下3⾏10.修改c:先删除内容,在转换为输⼊模式 c:⽤法同d11.替换:r r:单字符替换,会替换光标选中字符 R:替换模式,可以做字符替换。

Vim:gvim安装配置(windows)

Vim:gvim安装配置(windows)Vim:gvim安装配置(windows)⼀.gvim的特点:vim要求全部键盘操作,⽽gvim可以使⽤⿏标进⾏可视化操作,即gvim是vim的图形化界⾯;⼆.gvim安装:三.中⽂帮助安装:四.安装插件管理vundle:五.在_vimrc中加⼊常⽤配置(_vimrc在gvim的⽬录下):set nu! "设置⾏号colorscheme desert "设置配⾊⽅案syntax on "语法⾼亮syntax enable set nobackup "不⽣成备份⽂件set showmatch "设置匹配模式set smartindent "设置只能对齐set ai! "设置⾃动缩进set fileencodings=utf-8,gbkset ambiwidth=double "设置中⽂⽀持set guifont=consolas:h12 "设置字体及⼤⼩set mouse=a "启⽤⿏标六.配置ctags实现程序中跳转功:七. 源代码分析⼯具 taglist:⼋.Project 插件实现IDE功能:九. ⽂件浏览组件WinManager:⼗.多⽂档编辑 minibufexpl.vim:⼗⼀.在⼯程中快速查找 grep.vim:配置:将解压后的grep.vim 复制到vim80中的plugin在_vimrc中添加nnoremap <silent> <F3> :Grep<CR>使⽤⽅法:⽤gvim打开⼀个代码,光标选择要查找的内容,按F3确定查找的内容和范围。

gvim会在弹出的QuickFix窗⼝中列出所有符合条件的结果。

⼗⼆.⾼亮书签 visualmark.vim:配置:将visualmark.vim复制到vim80的plugin使⽤⽅法:将光标移动到需要加标签的地⽅,按下ctrl+F2。

VIM命令大全


set nu
#行号
set ai
#设置自动缩进
syntax on #高亮
syntax off #关闭语法功能
Ctrl+o:临时变成命令模式(一次而已)
ctrl +n 自动补全 ctrl + p 也一样
启动 vim
在命令行窗口中输入以下命令即可 vim 直接启动 vim vim filename 打开 vim 并创建名为 filename 的文件
Vim 中自动补全括号,引号设置
vim ~/.vimrc 进入配置文件 在空白文件中加入下面语句保存,退出即可 inoremap ( ()<Esc>i inoremap [ []<Esc>i inoremap { {<CR>}<Esc>O autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR> inoremap ) <c-r>=ClosePair(')')<CR> inoremap ] <c-r>=ClosePair(']')<CR> inoremap } <c-r>=CloseBracket()<CR> inoremap " <c-r>=QuoteDelim('"')<CR>
s/old/new/ 用 old 替换 new,替换当前行的第一个匹配
s/old/new/g 用 old 替换 new,替换当前行的所有匹配

gvim常用的配置及插件-windows(转)

gvim常⽤的配置及插件-windows(转)接触vim也已经有⼀年多了,期间也⽤过⼀段时间的SourceInsight,SourceInsight是Windows下⼀款不错的查看代码的软件。

利⽤它可以迅速的了解⼀个⼤型程序的结构。

后来在Linux下进⾏了⼀段时间的程序开发,就回到vim上了,经过⼀段时间的接触,发现vim越来越好⽤,后来在Windows上也就基本上全⽤gvim了。

在这篇⽂章⾥我主要介绍⼀些我⾃⼰认为⽐较有⽤的⼀些快捷键和插件的配置,不介绍vim的基本操作。

还有希望在看这篇⽇志之前最好先看吴垠⼤⽜的的⽂章,⾥⾯介绍的很是详细,我在这⾥只是补充⼀些。

⾸先介绍gvim的⼀些常⽤的⽬录⽐如Linux下:/etc/vim :gvim的配置⽂件gvimrc就在这个⽬录/usr/share/vim: 默认安装,gvim的安装⽬录。

改⽬录下⾯的⼀些重要的⽬录:/usr/share/vim/plugin: 插件所放的⽬录/usr/share/vim/doc :帮助⽂件所放的⽬录/usr/share/vim/syntax :⼀些与语法相关的配置⽂件的⽬录。

例如设置不同语⾔的⾼亮⽅式/usr/share/vim/colors :主题所放的⽬录在Windows下gvim的安装⽬录也可以找到相应的⽂件和⽂件夹。

Windows下的配置⽂件是安装⽬录下的_vimrc⽂件。

⼀、语法⾼亮⾸先在vim的配置⽂件⾥增加以下两句话配⾊⽅案的可以进⾏如下设置我是⽐较喜欢desert 这个配⾊⽅案的,具体⾥⾯的颜⾊也可以⾃⼰修改。

到colors⽂件夹下找到相应的配⾊⽅案的配置⽂件,然后。

hi Comment guifg=Green这是修改注释的颜⾊,还有相应其他的。

你如果看那个颜⾊不爽,你就⾃⼰把它改成顺眼的颜⾊就⾏。

如果要函数和运算符⾼亮,可以看吴垠⼤⽜的博客。

不过需要注意的是我在将相应的配置加⼊到c.vim中后,发现//注释居然不能颜⾊⾼亮了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 一般设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "set csprg=/usr/bin/cscope

" 设定默认解码 let &termencoding=&encoding set fileencodings=utf-8,gb18030,gbk,gb2312,big5

" 不要使用vi的键盘模式,而是vim自己的 set nocompatible

" history文件中需要记录的行数 set history=100

" 在处理未保存或只读文件的时候,弹出确认 set confirm

" 侦测文件类型 filetype on

" 载入文件类型插件 filetype plugin on

" 为特定文件类型载入相关缩进文件 filetype indent on

" 保存全局变量 set viminfo+=! " 带有如下符号的单词不要被换行分割 set iskeyword+=_,$,@,%,#,-

" 语法高亮 syntax on

"高亮搜索 set hlsearch

"显示行号 "set nu

" 高亮字符,让其不受100列限制 :highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white :match OverLength '\%101v.*'

"打开文件时,显示上次退出的地方 " Only do this part when compiled with support for autocommands if has("autocmd") augroup redhat " In text files, always limit the width of text to 78 characters autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif augroup END endif

" 状态行颜色 highlight StatusLine guifg=SlateBlue guibg=Yellow highlight StatusLineNC guifg=Gray guibg=White

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文件设置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 不要备份文件(根据自己需要取舍) set nobackup

" 不要生成swap文件,当buffer被丢弃的时候隐藏它 setlocal noswapfile set bufhidden=hide

" 字符间插入的像素行数目 set linespace=0

" 增强模式中的命令行自动完成操作 set wildmenu

" 在状态行上显示光标所在位置的行号和列号 "set ruler "set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2

" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2

" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l

" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key

" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI

" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0

" 不让vim发出讨厌的滴滴声
set noerrorbells

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5

" 在搜索的时候忽略大小写
"set ignorecase

" 不要高亮被搜索的句子(phrases)
set nohlsearch
set incsearch

" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch

" 输入:set list命令是应该显示些啥?
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$

" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3

" 不要闪烁
set novisualbell

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"状态行设置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\
[POS=%l,%v][%p%%]

" 总是显示状态行
set laststatus=2

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动格式化
"set formatoptions=tcrqn

" 继承前一行的缩进方式,特别适用于多行注释
set autoindent

" 为C程序提供自动缩进
set smartindent

" 使用C样式的缩进
set cindent

" 制表符为4
set tabstop=4

" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab

" 不要换行
set nowrap

" 在行和段开始处使用制表符
"set smarttab

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 在右侧显示窗口
"let Tlist_Use_Right_Window = 1

" 压缩方式
"let Tlist_Compart_Format = 1

" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1

" 不要关闭其他文件的tags
"let Tlist_File_Fold_Auto_Close = 0

" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0

" 不同时显示多个文件的 tag ,只显示当前文件的
let Tlist_Show_One_File=1
"启动vim自动打开taglist
"let Tlist_Auto_Open=1
"如果 taglist 窗口是最后一个窗口,则退出 vim
let Tlist_Exit_OnlyWindow=1

"自动递归加载tags
set autochdir
set tags=tags;
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"winManager 设置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"在进入vim时自动打开winmanager
let g:AutoOpenWinManager = 1

"设置界面分割
"let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"
let g:winManagerWindowLayout = "TagList|FileExplorer,BufExplorer"

"设置winmanager的宽度,默认为25
let g:winManagerWidth = 25

nmap WM :WMToggle
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands

相关文档
最新文档