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 。

Vim IDE环境配置讲解

Vim IDE环境配置讲解

VIM IDE环境配置1 介绍要使VIM变成和VS一样的集成环境,可通过安装以下插件来实现,分别是1)Ctags2)Taglist3)GNU Global4)OmniCppComplete5)SuperTab6)Winmanager7)NERDTree8)MiniBufExplorer下面将分别介绍各个插件的安装与使用。

2 Ctags安装安装步骤:1)从/下载源代码包后,解压缩生成源代码目录。

2)进入源代码根目录执行./configure。

3)执行make。

4)编译成功后执行make install。

常用命令列表:1)$ ctags –R * ($ 为Linux系统Shell提示符)2)$ vim –t tag (请把tag替换为您欲查找的变量或函数名)3):ts (ts 助记字:tags list, “:”开头的命令为vim中命令行模式命令) 4):tp (tp 助记字:tags preview)5):tn (tn 助记字:tags next)6) Ctrl + ] (跳转到该标记的定义处)7) Ctrl + t (返回到上次跳转前位置)命令解释:1)“$ ctags –R *”:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。

“*”表示所有文件。

2)这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vim时,会自动载入此tags文件。

Tags文件中包括这些对象的列表:1)用#define定义的宏2)枚举型变量的值3)函数的定义、原型和声明4)名字空间(namespace)5)类型定义(typedefs)6)变量(包括定义和声明)7)类(class)、结构(struct)、枚举类型(enum)和联合(union)8)类、结构和联合中成员变量或函数Vim用这个“tags”文件来定位上面这些做了标记的对象。

注意:打开文件时要在运行ctags的目录下打开,不能进入子文件夹后再打开。

Vim-详细配置

Vim-详细配置

Vim或Gvim详细配置配置一览:1、括号自动匹配[支持所有的括号类型以及引号等]2、一键添加语法模板、作者、时间等信息3、单源文件一键编译、运行[已配置支持所有主流编程语言]4、代码补全、函数跳转[由ctags实现]5、语法结构智能补全[由snipMate实现]6、在Vim里写博客、Wiki [由vimWiki实现]7、添加了Vim文档的简体中文版8、更多功能详见配置代码,本处提供配置文件和自定义配置文件夹的下载,下载链接请见本文末尾经过着色的配置文件:--------------------------------------------------使用说明:如果想图省事,那你就重新安装你的Vim到D:\Apps\Gvim,然后执行以下步骤:1、把整个vimfiles目录复制到D:\Apps\Gvim目录下覆盖原有目录2、将ctags.exe、cscope.exe、unzip.exe复制到D:\Apps\Gvim\vim73目录3、将D:\Apps\Gvim\vim73添加进环境变量4、把_vimrc文件复制到D:\Apps\Gvim目录下覆盖原有文件[有完整版和无Vimwiki版,建议使用后一版本] [如需使用wiki功能则可使用完整版,并参考完成环境的配置]配置文件中,凡涉及具体路径信息的请更换为你自己本机实际路径,凡涉及姓名、邮箱的请更换为你自己的姓名、邮箱------------------------ctags使用方法简要介绍:比如我想添加C/C++语言的代码补全,并能在函数调用间实现跳转,请执行以下步骤:1、首先确保系统能够找到ctags.exe,也就是ctags.exe添加到了系统环境变量2、以MinGW为例,到你编译器安装目录的include目录(比如C:\MinGW\include)执行ctags -R --languages=c,c++,这将在include目录下生成一个tags文件3、在_vimrc文件中添加以下一行:set tags+=C:\MinGW\include\tags4、以后编辑C/C++源文件时,按Ctrl + P即可拥有C/C++的代码提示。

vim配置(vimplus)教程及问题

vim配置(vimplus)教程及问题

vim配置(vimplus)教程及问题An automatic configuration program for vim安装(github地址:, 欢迎star和fork)Mac OS X安装/usr/bin/ruby -e "$(curl -fsSL https:///Homebrew/install/master/install)"安装vimplus1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.shUbuntu版本要求ubuntu14.04及其以上64位系统。

安装vimplus(建议在普通⽤户下安装)1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.shCentos版本要求centos7及其以上64位系统。

安装vimplus(建议在普通⽤户下安装)1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.shArchLinux安装vimplus1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.sh个性化修改~/.vimrc.local⽂件内容,以启⽤个性化定制,可覆盖~/.vimrc中的设置。

插件列表插件说明cpp-mode提供⽣成函数实现、函数声明/实现跳转、.h .cpp切换等功能(I'm author )vim-edit⽅便的⽂本编辑插件(I'm author )change-colorscheme随⼼所欲切换主题(I'm author )prepare-code新建⽂件时,⽣成预定义代码⽚段(I'm author )vim-buffer vim缓存操作(I'm author )vimplus-startify vimplus开始页⾯(修改⾃mhinz/vim-startify)tagbar使⽤majutsushi/tagbar的v2.3版本,taglist的替代品,显⽰类/⽅法/变量vim-plug⽐Vundle下载更快的插件管理软件YouCompleteMe史上最强⼤的基于语义的⾃动补全插件,⽀持C/C++、C#、Python、PHP等语⾔NerdTree代码资源管理器vim-nerdtree-syntax-highlight NerdTree⽂件类型⾼亮nerdtree-git-plugin NerdTree显⽰git状态vim-devicons显⽰⽂件类型图标Airline可以取代powerline的状态栏美化插件auto-pairs⾃动补全引号、圆括号、花括号等LeaderF⽐ctrlp更强⼤的⽂件的模糊搜索⼯具ack强⼤的⽂本搜索⼯具vim-surround⾃动增加、替换配对符的插件vim-commentary快速注释代码插件vim-repeat重复上⼀次操作vim-endwise if/end/endif/endfunction补全tabular代码、注释、表格对齐vim-easymotion强⼤的光标快速移动⼯具,强⼤到颠覆你的插件观incsearch.vim模糊字符搜索插件markdown-preview markdown实时预览vim-fugitive集成Gitgv显⽰git提交记录vim-slash优化搜索,移动光标后清除⾼亮echodoc补全函数时在命令栏显⽰函数签名vim-smooth-scroll让翻页更顺畅clever-f.vim强化f和F键github-complete.vim Emoji 补全vimcdoc vim中⽂⽂档快捷键以下是部分快捷键,更详细的快捷键请查阅vimplus帮助⽂档。

Linux系统配置VI或VIM的技巧

Linux系统配置VI或VIM的技巧

Linux系统配置VI或VIM的技巧1、VI或VIM的配置文件的路径发现/usr/share/vim/vimrc和/etc/vim/vimrc指向是同一个文件,即vimrc,为vi和vim 的配置文件,修改这个文件即可。

这个路径在不同的LINUX版本中可能会不同。

2、配置颜色配置VI和VIM的颜色显示,使它能够高亮度显示一些特别的单词,这对编写程序很有用。

后来打开文件发现里面其实已经有一行了,只是用引号注释掉了,只需将syntax on 所在行前面的引号去掉即可。

或者另外独立添加一行:syntax on 也行,另外编辑/etc/profile 增加一行alias vi="vim"就行了。

3、设置鼠标使用VI编辑文本时,如果想修文件中改离光标较远的位置,这时候想用鼠标定位,可默认情况下,鼠标是不可用的。

如果你想使用鼠标,只需另起一行,写上:set mouse=a 即可4、设置自动缩进默认情况下,VI和VIM都没有缩进的,每换一行,光标均定位在顶格,如果你想自动对齐,请将set autoindent所在行前面的引号去掉,或者另外添加一行:set autoindent也可。

这与配置颜色类似。

这样的设置的结果是按回车后新行与上一行自动对齐。

5、设置tab的缩进量如果用python编写程序,那么行缩进量是一个极其重要的概念,同一个块的缩进量必须相同。

你可能喜欢在行前加空格来表示缩进,但每次必须敲多次空格键,如果你喜欢用按TAB键来表示缩进,你可能觉得写的文本或程序不太好看,因为默认情况下,VI和VIM的TAB缩进量比较大(至少六,七个字符)。

设置TAB键缩进量的方法:set shiftwidth=3 你也可以选一个你自己喜欢的缩进量,比如2,或4。

其他方便的技巧1、vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode。

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程序。

Linux如何运用vim进行高级编辑

Linux如何运用vim进行高级编辑

Linux如何运用vim进行高级编辑导读:vim是一款文本编辑器,可运用于Linux系统中,对于Linux命令的使用可以参考我Linux如何使用vi/vim命令,今天小编要给大家介绍的是Linux运用vim进行高级编辑的方法。

本文内容概要:set设置.vimrc配置vim下执行linux命令利用linux命令来编辑当前文件短语缩写本文约定:$ + 命令表示在普通的bash的命令行下:+ 命令表示在vim的ex(命令)模式,按“Ctrl” + “:” 进入set命令有两种类型的选项可以使用:set命令进行修改:不是开就是关的触发选项和带数字或字符串值的选项(如页边距的位置和文件名)一般触发选项的命令为:set cmd关闭选项的命令为:set nocmd上面cmd代表某种命令选项例如,:set ic 在搜索时忽略大小写(ic=ignore case):set noic 在搜索时不忽略大小写可以用:set all 命令查看所有的选项,可以看到你设置的值或者默认值:set option?查看option这个选项的当前设置值:set 显示在.vimrc文件或当前会话期间修改或设置过的选项.vimrc文件在Linux中,.vimrc在用户home目录下(初始时没有,要自己创建一个),可以修改这个文件。

可以把set,ab和map命令写入该文件中,那么打开vim编辑,会使用这个文件里的配置替换环境除了读取home目录下的.vimrc配置文件外,还可以让vim读取当前目录下的.vimrc文件,这样可以对那些适用于特殊项目的选项进行设置。

注意,可以在home目录下的.vimrc设置某些选项,然后在本地目录中取消这些设置。

vi使用技巧和配置方法简介

vi使用技巧和配置方法简介

vim的三个模式:----------------------------------编辑模式 - 命令模式 - 可视模式三个模式的转换:其它模式进入命令模式按esc键命令模式进入编辑模式按i、o或是R,或是insert键也行.i表示插入;o在光标所在位置的下一行开始插入; O是在光标所在行的上一行新增一行并进入插入模式;R表示代替命令模式进入可视模式按v或是ctrl-v键.注意v和ctrl-v是不同的:一个是普通的行选择;一个是块选择==================== 命令模式下常用命令 =================定位:--------------G 移至档尾(最后一行的第一个非空白字元处)gg 移至档首(第一行之第一个非空白字元处)* gg 是 vim 的扩充功能,在elvis或原始 vi中可用 1G来移至档首(是数字 1不是英文字 lL);* G之原意是goto,指移至指定数目行之行首,如不指定数目,则预设是最后一行。

复制、剪切、粘贴:---------------如果要选择的文字很长或是滚轮不好总选不中,那你可以用可视模式,可视模式就是在命令模式下按v键即可进入.进入了后移动光标,选完要复制或是要剪切的内容,然后:如果是想复制那按y如果是想剪切那按x当按下这些键后自动回到命令模式,这时移动光标到你想粘贴的位置按p注意,如果你按了x但是没有粘贴,然后复制了一行,那前一行就会自动清掉,也就是删除的话也是按xyy 复制游标所在行整行;或大写一个Y。

nyy(nY)复制n行yG 复制至档尾y1G 复制至档首:39,120 y从第39行复制到120行(算术不好也能复制)p 小写p代表贴至游标后(下)100p粘贴100行P 大写P代表贴至游标前(上)redo和undo:---------------undo(取消操作) 在命令模式下按uredo(取消刚才的取消 ) 在命令模式下按ctrl-R用vi给文档加密:----------------------------------vim -x [档名]这样进入 vim 后会要求输入密码。

Vim安装与配置

Vim安装与配置

Vim安装vim比vi的功能强大,但ubuntu里面只有vi和vim.tiny,所以要自己安装。

一、在命令行输入vi再按tab,可以看到:二、键入命令:sudo apt-get install vim-gtk,然后输入y,就可以自己下载安装vim了。

Tip:前提是保证虚拟机能连接到网络,否则会出现E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?的错误A、共享主机无线网络的方法:1、在主机上运行cmd,输入命令services.msc,找到VMvare Nat Service和VMvare DHCP Service右击开启。

2、右击虚拟机右下部的netwoark adapters点击settings,出现如下窗口,选择NAT:使其共享主机IP (注意:每一次需要网络连接的时候都要手动打开上述两个服务器。

)连接到网络后重复步骤二,完成后键入命令vim,显示如下则vim安装成功。

三、安装好vim,就可以开始配置了,使用命令sudoapt-get install vim-script vim-doc,下载文档和插件。

下载过程中如果还出现如下错误,解决办法:清除catche里的缓存使用命令sudo rm/var/catche/apt/archieves/partial/*,在使用命令sudo apt-get clean四、在/home/usr(你的用户名,我的是hagog)下,使用命令gedit .vimrc,在新建的文件下输入配置信息,那你的vim就有高亮,缩进,显示行号的功能" This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian.debian.vim" Uncomment the next line to make Vim more Vi-compatible" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changesnumerous" options, so any other options should be set AFTER setting 'compatible'.set nocompatible" Vim5 and later versions support syntax highlighting. Uncommenting the " following enables syntax highlighting by default.if has("syntax")syntax on " 语法高亮endifcolorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下" detect file typefiletype onfiletype plugin on" If using a dark background within the editing area and syntax highlighting" turn on this option as wellset background=dark" Uncomment the following to have Vim jump to the last position when" reopening a fileif has("autocmd")au BufReadPost *if line("'\"") > 1 &&line("'\"")<= line("$")| exe "normal! g'\"" | endif"have Vim load indentation rules and plugins according to the detected filetypefiletype plugin indent onendif" The following are commented out as they cause vim to behave a lot " differently from regular Vi. They are highly recommended though."set ignorecase "搜索模式里忽略大小写"set smartcase "如果搜索模式包含大写字符,不使用'ignorecase'选项。

vimrc语法

vimrc语法

vimrc语法什么是vimrc?vimrc是Vim编辑器的配置文件,用于个性化设置Vim的各种功能和选项。

Vim是一款功能强大而又高度可定制的文本编辑器,通过修改vimrc文件,用户可以根据自己的喜好和需求来自定义Vim的行为。

vimrc文件的位置及命名规则vimrc文件通常位于用户的home目录下,以隐藏文件的形式存在,文件名为”.vimrc”。

在Windows系统中,文件可能会被命名为”_vimrc”。

如果想要使用全局的配置文件,也可以将vimrc文件放置在Vim的安装目录中。

vimrc文件的基本语法vimrc文件是一个文本文件,可以使用任何文本编辑器进行编辑。

该文件使用Vim 脚本语言编写,脚本中的每一行代表一个设置或命令。

下面列举了一些常用的vimrc语法:1.设置选项:可以使用set命令来设置Vim的选项。

例如:set number可以显示行号,set tabstop=4可以设置Tab键的宽度为4个空格。

2.定义快捷键:可以使用map命令来定义快捷键映射。

例如:map <F2> :w<CR>将F2键映射为保存文件的快捷键。

3.启用插件:Vim支持插件扩展,可以使用plugin命令来启用插件。

例如:plugin indentline可以启用缩进线插件。

4.设置自动命令:可以使用autocmd命令来设置自动命令。

例如:autocmdFileType python set tabstop=4可以在打开Python文件时自动设置Tab键宽度为4个空格。

vimrc文件的常用配置项vimrc文件支持众多的配置项,可以根据个人需求进行自定义设置。

下面列举了一些常用的配置项及其用法:编辑相关配置•set tabstop=4:设置Tab键的宽度为4个空格。

•set shiftwidth=4:设置缩进时的宽度为4个空格。

•set expandtab:将Tab键转换为空格。

•set autoindent:启用自动缩进。

linux vim高级用法

linux vim高级用法

linux vim高级用法1. 列编辑模式在普通模式下,通过[v]进入可视模式,再按[Ctril+v]进行列编辑模式。

此时可以通过移动光标进行选中,按i进入插入模式,在选中的每一行的相同的位置插入文本。

2. 宏录制按[q]开始录制宏,按[q]结束录制,然后可以通过@[宏名]执行宏,也可以通过[count]@[宏名]执行多次。

3. 分屏使用命令:split或者:vsp可将窗口分成上下或者左右两个窗口。

同时,使用命令:[Ctrl+w][h/j/k/l]可以在窗口之间移动。

4. 标签页使用命令:tabnew [文件名]可以在新的标签页中打开文件。

同时,使用命令:[Ctrl+w]t可以在标签页之间移动。

5. 外部命令使用命令:!+[命令]可以在vim中执行外部命令。

例如:!ls可执行ls命令。

6. grep搜索使用命令:vimgrep /[pattern]/ [filetype] **/*可在指定的目录下递归搜索所需内容。

例如:vimgrep /hello/ **/*可在当前目录中搜索包含hello字符串的文件内容。

7. 显示行号使用命令:set number即可在当前窗口显示行号。

8. 多文件编辑使用命令:[Ctrl+w]v可以分割窗口,并使用命令:edit [文件路径]打开文件编辑。

可以同时编辑多个文件。

9. 添加自定义命令使用命令:command [命令] [操作]可以自定义命令。

例如,可以通过:command Wq wq命令将Wq命令定义为保存并退出。

10. 模式匹配使用命令:%s/[pattern]/[replacement]/g可对文件进行全文替换。

例如,使用:%s/hello/world/g可以将文件中所有的hello替换为world。

vim配置大全

vim配置大全

" fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文
" 件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因
" 此最好将 Unicode 编码方式放到这个列表的最前面。
" 拉丁语系编码方式 latin1 最好去掉。因为如果有 latin-1,在文件中有多种编码
iab #i #include <<Esc>mxa><Esc>`xa<C-R>=Eatchar('\s')<CR>
iab #d #define
" C 关键字
iab if( if (<Esc>mxa)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
set whichwrap=b,s,<,>,[,] " 设定退格键、空格键以及左右方向键在行首行尾时的
" 行为,不影响 h 和 l 键
set wrap " 自动换行显示
syntax on " 自动语法高亮
" 设置命令行和状态栏
set autoindent cindent cinoptions=g0
" 打开自动缩进和 C 语言风格的缩进模式,
" 定制 C 语言缩进风格
set backspace=indent,eol,start
" 不设定的话在插入状态无法用退格键和 Delete
" 键删除回车符

Vim常用命令及配置方案

Vim常用命令及配置方案

Vim常⽤命令及配置⽅案很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新⼿不是很友好。

我也就简单看了下基本操作就上⼿了,但⼜不是长期在vim下⼯作,这就导致了每⼀次重新使⽤vim都要再去回温下基本操作,很是难受,所以就趁这个机会把基本操作都记录下来,⼀来可以当做⾃⼰的笔记,⼆来希望可以帮到同样和我⼀样⽤过vim但却忘得差不多的⼈。

另外,这⾥也记录⼀下⾃⼰的vim配置,这个配置可能并没有其他⽹友分享的那么强⼤,但⾄少⾜够简单,能够提⾼⾃⼰编码的效率。

vim常⽤命令⾸先先简单梳理⼀下vim的⼯作模式。

vim有三种模式,分别是命令模式(Command mode),输⼊模式(Insert mode)和底线命令模式(Last line mode)。

简单来讲就是,当我们刚打开vim,或者使⽤vim打开了⼀个⽂件,终端上显⽰着⽂件的内容,这时候就是命令模式(如上图就是刚打开⼀个⽂件的情况,此时光标位于第⼀⾏⾏⾸处),在现在的情况下,键盘输⼊⼩写的i a o 或者⼤写I A O中的其中⼀个,就可以进⼊输⼊模式,各个按键的具体意义如下:按键具体意义i从⽬前光标所在处输⼊I在⽬前所在⾏的第⼀个⾮空格符处开始输⼊a从⽬前光标所在的下⼀个字符处开始输⼊A从光标所在⾏的最后⼀个字符处开始输⼊o在⽬前光标所在的下⼀⾏处输⼊新的⼀⾏O在⽬前光标所在的上⼀⾏处输⼊新的⼀⾏r继续输⼊⼀个字符以取代光标所在处后⾯单个字符,⽽后返回命令模式R新输⼊的字符会⼀直取代光标所在处后⾯的字符当我们使⽤上述按键进⼊输⼊模式,配合⽅向键编辑好⽂件内容后,使⽤ESC键可退出输⼊模式,回到命令模式,vim的⼤部分命令都是在命令模式下使⽤。

命令模式下的按键⼗分丰富,主要的操作为光标移动、复制粘贴、搜索替换等光标移动的基本按键如下:按键具体意义h 或向左箭头键(←)光标向左移动⼀个字符j 或向下箭头键(↓)光标向下移动⼀⾏k 或向上箭头键(↑)光标向上移动⼀⾏l 或向右箭头键(→)光标向右移动⼀个字符在上⾯的基础上,如果你想光标的位置⼀次移动多⾏或者在同⼀⾏上移动多个字符,可以有以下⼏种⽅法:直接输⼊数字并在其后输⼊相应的⽅向,例如输⼊20j或20↓表⽰光标向下移动20⾏,输⼊20l或20→表⽰光标向右移动20个字符。

vim配置大全

vim配置大全
set showtabline=0 " 隐藏Tab栏
endif
"编辑vim配置文件
if has('unix')
set fileformats=unix,dos,mac
nmap <Leader>e :tabnew $HOME/.vimrc<CR>
let $VIMFILES = $HOME.'/.vim'
else
set fileformats=dos,unix,mac
nmap <Leader>e :tabnew $VIM/_vimrc<CR>
let $VIMFILES = $VIM.'/vimfiles'
endif
" Alt-Space is System menu
autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o/*<ESC>'>o*/
autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100
" minibufexpl插件的一般设置
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1

vim高级用法多年经验原创总结

vim高级用法多年经验原创总结

vim高级用法多年经验原创总结(全部测试成功)======================================================== ==========================一、Linux→命令模式:Vim filename1.一次移动一个光标h j k l左下上右2.行内移动0 到行首(d0或d^删除至行首)$ 至行尾(d$删除至行尾)0=HOME 到行首$=end 至行尾G 到文件尾50G 到50行gg到文件首3.有小d/大D都是剪切(del word)dd剪掉当前行5dd 剪掉当前行起共5行D 剪空当前行x 删除一个字母dw剪除一个单词4.undo撤消u 一次撤一行中的一个动作(多行时小u比大U管用)U 撤消一行中的所有动作(单行时大U比小u管用)5.复制粘贴yy复制当前行5yy 复制5行p 粘贴(paste)ZZ 保存退出ZQ 不保存退出........................................6.vim中大小写转化:~或u或U(高级用法) ........................................a、整篇文章大写转化为小写:gg→guGgg到文件首gu把选定范围全部小写G 到文件结束......................................b、整篇文章小写转化为大写:gg→gUGgg到文件首gU把选定范围全部大写G 到文件结束c、整篇文章反转(大转小小转大)ggg~G()======================================================== ========================二、命令模式→输入模式:按ins/a/A/i/I/o/O/r/Ro1.插入o 在光标下加一空行并进入插入模式O 在光标上开一空行并进入插入模式r 替换一个字符R 连续替换多个字符2.文件内容查找:/word 从上而下在文件中查找字符串“word”?word 从下而上在文件中查找字符串“word”n 定位下一个匹配的被查找字符串N 定位上一个匹配的被查找字符串3.命令模式→Visual Block:(高级用法)按ctrl+v,举例:选中多行并添加注释#vim→ctrl+v→方向箭头选中→I→#→ESC#vim→set nu→^v→(100G:当前行到第100行)→I→#→ESC======================================================== ===================三、命令模式→末行模式1.默认情况下Vim的搜索是大小写敏感的,::set ignorecase忽略大小写:set noignorecase不忽略大小写:set nu或:set number 设置显示行号:set nonu或:set nonumber不显示行号:999 移动光标到第999行2.有彩色或无彩色(高级用法):syntax clear或:set syntax=off 暂时关闭语法高亮:syntax enable 当前缓冲区打开语法高亮功能。

vim 的set 功能设定

vim 的set 功能设定

set 功能設定本單元可說是V im的微調功能,可依您個人的喜好做有限度的調整。

由於V im做了相當多的擴充,文內主要是述敘V im的設定,但elvis 沒有的也會標明。

但並不打算一網打盡,只說明重要、常用的部份,其它的可以:h option-list 來查閱。

在系統上,會有個vimrc_example.vim 檔,可以依據這個檔案來設定一些常要用到的內容。

9.1 該在何處設定呢?9.1.1 V im的設定檔可在線上做設定,例如:set ai 或:set noai,ai 是autoindent 的縮寫,這樣就可以馬上改變縮格的設定,但離開vim 後就又恢復原狀。

要永久設定就得設在設定檔中。

vim 的設定檔在:~/.exrc~/.vimrc~/.gvimrc GUI 版本$VIM/vimrc 系統預設值,最好不去修改$VIM/gvimrc GUI 版本$VIM\_vimrc Windows 版本$VIM\_gvimrc您要把GUI 的設定設在$HOME/.vimrc 也是可以的,但分開來可能對以後要修改時會比較找得到地方改。

那$VIM 在哪裡呢?/usr/share/vim 或/usr/local/share/vim 這是編譯時就決定的,但可在$HOME/.bash_profie 或$HOME/.bashrc 中另設。

Windows 版本的$VIM 則在C:\Vim 這個目錄中,亦可設在autoexec.bat 中。

9.1.2 elvis 的設定檔~/.exrc~/.elvislib/elvis.rcC:\Program Files\elvis\elvis.rc Windows 版本如果您的系統上同時有V im及elvis,則使用$HOME/.exrc 要小心,以免互相影響了設定。

好處是可以把共同的設定設在$HOME/.exrc 裡。

提醒您一下!設在設定檔中時set 前當然是不必冒號的。

9.1.3 nvi-m17n 的設定檔~/.exrc~/.nexrc9.2 如何得知目前的設定:set 或:se 會顯示所有經過修改的部份,就是和預設值不一樣的部份。

VIM VI终极教程 (第四版)

VIM VI终极教程 (第四版)

VI / VIM终极教程第四版Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。

1999 年Emacs 被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。

但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线,总的来看,Vim 和Emacs同样都是非常优秀的文本编辑器。

目录简介发展历史学习方法高效率移动高效的输入高效的读代码版本信息Emacs和Vim二款神一样的代码编辑器展开简介发展历史学习方法高效率移动高效的输入高效的读代码版本信息Emacs和Vim二款神一样的代码编辑器展开简介Vim是从vi 发展出来的一个文本编辑器。

代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

和Emacs并列成为类Unix系统用户最喜欢的编辑器。

[1]使用vim先知道其设计理念是很重要的,有助于记忆,举一反三;1.vim的设计理念是组合;命令组合: Vim强大的编辑能力中很大部分是来自于其普通模式命令。

vim的设计理念是命令的组合。

例如普通模式命令"dd"删除当前行,"dj"代表删除到下一行,原理是第一个"d"含义是删除,"j"键代表移动到下一行,组合后"dj"删除当前行和下一行。

另外还可以指定命令重复次数,"2dd"(重复"dd"两次),和"dj"的效果是一样的。

"d^","^"代表行首,故组合后含义是删除到光标开始到行首间的内容(不包含光标);"d$" $"代表行尾,删除到行尾的内容(包含光标);用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。

VIM高级配置方法

VIM高级配置方法

用Gvim建立IDE编程环境(Windows篇)说明:本文是作者在完全按照着名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。

2007/10/31/。

0.准备软件及插件。

(a)(b)1.7.0(c)(d)(e) 地址htt(f)(g)(h)(i)1.安装。

运行,选择完全安装(Full),我的安装目录是默认的C:\Program Files\Vim。

安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。

2.安装中文帮助手册。

运行1.7.0,它会自动找到gvim的安装位置。

安装完毕后重新打开gvim,:help时帮助手册已经是中文的了。

进行到这一步时,我的gvim菜单处的中文出现了乱码。

在网上寻找解决方案,将C:\Program Files\Vim\vim72下名为lang的文件夹删去,使菜单语言变为英语。

3.语法高亮。

首先,编辑_vimrc文件加入以下内容:set nu!colorscheme desertsyntax enablesyntax on这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。

我们还可以让函数名也高亮起来,在C:\Program Files\Vim\vim72\syntax下找到和,分别添加以下内容:syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1hi cFunction gui=NONE guifg=#B5A1FF重新打开gvim,效果如下:4.程序中跳转。

Vi Vim编辑器工具软件使用手册

Vi Vim编辑器工具软件使用手册
#vi file1 [file2] [file3] .....
在多个文件之间的编辑切换:
在末行模式下:
:n 载入下一个文件 :N 载入上一个文件
当完成一个文件的编辑后,需要保存该文件,才可切换
两个文件之间的编辑切换:
命令模式下:
ctrl+shift+6
末行模式下:
:e#
vi命令大全
总结整理
vi打开、退出与保存退出 vi进入插入,末行模式的方法 vi返回命令模式的方法 vi的剪切/删除、复制、粘贴方法 vi的翻页、光标操作方法 vi的搜索与替换方法 vi编辑多个文件的方法 vi的环境设定以及自动启动配置文件
2、利用vi打开vi_test文件,打开时自动定位在第二行。
在第二行结尾,输入123456,回到命令模式。 在第二行开头,输入567890,回到命令模式。 另存为文件为vi_test1。
3、利用vi打开vi_test1
在第一行开头,输入abcdef,回到命令模式。 放弃保存,并退出。
Vi常用命令与快捷操作
:
命令
查找(自顶向下)
?
查找(自底向上)
三种保存方式
有三种方法保存当前编辑的文件 在末行模式下:
:w [filepath] 保存当前编辑的文件 :w! [filepath] 强制保存文件,若文件已存在则强行覆盖 若[filepath] 有指定,表示另存为文件。
四种退出方式
有四种方法可以退出vi返回到shell命令提示符:
实验与练习
vi的进与退出练习
1、通过vi打开/etc/passwd文件,并定位到第10行,然后退出。 2、使用vi新建文件,退出时保存路径名为/root/vi_test。 3、使用vi打开之前创建的/root/vi_test文件,在命令模式按键盘i 键进入插入模式,输入“hello world”,保存并退出。
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用Gvim建立IDE编程环境(Windows篇)
说明:本文是作者在完全按照着名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。

2007/10/31/1858917.aspx。

0.准备软件及插件。

(a)gvim72.exe
(b)vimcdoc-1.7.0-setup.exe
(c)ec57w32.zip
(d)taglist_45.zip
(e)winmanager.zip地址htt
(f)minibufexpl.vim
(g)a.vim
(h)grep.vim cript.php?src_id=7645
(i)visualmark.vim
1.安装gvim7.2。

运行gvim72.exe,选择完全安装(Full),我的安装目录是默认的C:\Program Files\Vim。

安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。

2.安装中文帮助手册。

运行vimcdoc-1.7.0-setup.exe,它会自动找到gvim的安装位置。

安装完毕后重新打开gvim,:help时帮助手册已经是中文的了。

进行到这一步时,我的gvim菜单处的中文出现了乱码。

在网上寻找解决方案,将C:\Program Files\Vim\vim72下名为lang的文件夹删去,使菜单语言变为英语。

3.语法高亮。

首先,编辑_vimrc文件加入以下内容:
set nu!
colorscheme desert
syntax enable
syntax on
这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。

我们还可以让函数名也高亮起来,在C:\Program Files\Vim\vim72\syntax下找到 c.vim和cpp.vim,分别添加以下内容:
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction gui=NONE guifg=#B5A1FF
重新打开gvim,效果如下:
4.程序中跳转。

将ec57w32.zip解压,在解压后文件夹中找到ctags.exe,将其复制到C:\ProgramFiles\Vim\vim72下,并编辑_vimrc文件,添加以下内容:
set tags=tags;
set autochdir
打开cmd命令行,切换到你要查看的源代码的根目录处,运行
ctags -R
将会在此目录处生成一个tags文件。

用gvim打开一个代码文件,将光标放到某一函数名上,如下图的UpdateViewByPosNo(),按下"ctrl+]",光标会自动跳转到定义处。

按下"ctrl+T"会跳回到原来的位置。

变量、结构体、宏等等,都可以这样做。

当你的源文件有更新时,只能重新运行ctags -R命令,来更新tags文件。

5.窗口管理。

将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到C:\Program Files\Vim\vim72下的doc及plugin中。

在_vimrc文件中加入以下内容:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
用gvim打开代码文件(已生成过tags文件),:Tlist,TagList窗口即出现在左侧。

用相同的方法将winmanager.zip解压和拷贝,在_vimrc文件中加入以下内容:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
用gvim打开代码文件,normal状态下输入命令"wm",窗口如下
其中左上是netrw窗口(浏览文件),左下是TagList窗口,再次输入"wm"时这两个窗口会关闭。

6.多文件编辑。

将minibufexpl.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
当用gvim打开两个或两个以上的文件时,会自动弹出MiniBufExplorer窗口,如下图
ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,可以切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。

7.快速切换头文件/源文件。

将a.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
nnoremap <silent> <F12> :A<CR>
用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。

8.在工程中快速查找。

将grep.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
用gvim打开源码文件,并将光标定位到要查找的内容上,按下F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果。

如下图
确定查找内容时,支持正则表达式。

9.高亮的书签。

将visualmark.vim复制到C:\Program Files\Vim\vim72\plugin。

用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。

使用F2在书签之间正向切换,shift+F2反向切换。

相关文档
最新文档