Vim配置
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编辑器及环境变量配置
vim编辑器及环境变量配置vi是Linux系统⾃带的⽂本编辑器,vim编辑器可以⾼亮显⽰vim编辑器的⽤法普通模式,编辑模式,命令模式1. vim ⽂件名# 此时进⼊命令模式,你敲击键盘的动作都会被识别是⼀个vim的命令进⼊编辑模式命令i 在当前光标所在处插⼊⽂字I 在当前所在⾏的⾏⾸第⼀个⾮空格符处开始插⼊⽂字,和A相反A 在当前所在⾏的⾏尾最后⼀个字符处开始插⼊⽂字,和I相反O 在当前所在⾏的上⼀⾏处插⼊新的⼀⾏o 在当前所在⾏的下⼀⾏处插⼊新的⼀⾏2.但凡进⼊插⼊模式之后,敲击键盘的动作就会被识别为是普通的字符串了3.按下esc退出编辑模式之后,⼜进⼊命令模式了4.输⼊ :wq! 保存vim的写⼊内容,然后退出vim,结束操作在普通模式下,常⽤的指令$ 快速移动到⾏尾0 快速移动到光标的⾏⾸x 删除光标所在的字符gg 移动到⽂件的第⼀⾏G 移动到⽂件的最后⼀⾏5gg或5回车当前光标向下移动5⾏yy 复制光标当前⾏3yy 复制光标后3⾏p 打印yy所复制的内容dd 删除光标所在⾏4dd 删除光标向下的4⾏内容dG 删除光标当前⾏,到⾏尾的所有内容u 就是撤销上⼀次的动作命令模式下/string 从⽂件开头搜索,按n继续搜索,按N反向搜索string 从⽂件的第⾏,向上搜索字符串信息,按n继续搜索,按N反向搜索:%s/A/B/g,把A替换成B,如果A或B中有斜线,把分割的斜线换#或@s为替换,g全局替换:n1,n2s/A/B/g n1、n2为数字,在第n1⾏和n2⾏间寻找A,⽤B替换例⼦:全局替换,整个⽂件替换将nologin替换为boy:%s/nologin/boy/g例2:替换1-5⾏,将boy替换为nologin1,5s/boy/nologin/g#///为分隔符,可以⽤### @@@替代:wq!:q! 不保存退出:数字快速的定位到某⼀⾏:set nu 显⽰vim的⾏号:set nonu 取消显⽰⾏号修改linux的全局配置⽂件1.名字叫做 /etc/profile,⾥⾯是shell脚本语⾔2.编辑这个⽂件,写⼊你想永久⽣效的变量和值,系统每次开机都会读取这个⽂件,让其⽣效vim /etc/profile写⼊如下内容###这是⾃定义的变量,每次开机都能够读取了,第⼀条是设置系统中⽂的变量export LC_ALL=zh_CN.UTF-8 #打开注释,系统⽀持中⽂#export LC_ALL=en_US.UTF-8 #打开注释,系统就⽀持英⽂了linux单引号和双引号的区别单引号中的内容,仅仅就是个字符串了,不识别任何其他的特殊符号双引号中的内容,能够识别特殊符号,以及变量[root@linux ~]# echo '$name'$name[root@linux ~]# echo "$name"wmmPATH变量PATH就是定义⼀些常⽤的软件可执⾏命令的⽬录,放⼊系统中,可以快捷的查询,⽽不需要每次都输⼊绝对路径1.为什么系统能够直接找到python解释器?[root@linux tmp]# which python #输出命令所在的绝对路径/bin/python2.学习linux的PATH,[root@linux tmp]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin注意,PATH的路径,是有先后顺序的,从左往右,读取的3.如果编译安装了⼀个python3,装在了 /opt/python36/⽬录下,怎么添加PATH?#这个变量赋值的代码,就是添加python3到环境变量中了PATH="/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:"4.由于上述变量赋值的操作,只是临时⽣效,我们想永久的更改PATH的值,还得修改/etc/profilevim /etc/profile #打开⽂件,在⽂件末尾,添加PATH值的修改PATH="/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:"。
vim配置文件.vimrc详解
vim配置⽂件.vimrc详解"是否兼容VI,compatible为兼容,nocompatible为不完全兼容"如果设置为compatible,则tab将不会变成空格set nocompatible"设置⿏标运⾏模式为WINDOWS模式behave mswin"设置菜单语⾔set encoding=chineseset langmenu=zh_CN.UTF-8" =========" 功能函数" =========" 获取当前⽬录func GetPWD()return substitute(getcwd(), "", "", "g")endf" =====================" 多语⾔环境" 默认为 UTF-8 编码" =====================if has("multi_byte")set encoding=utf-8" English messages only"language messages zh_CN.utf-8if has('win32')language englishlet &termencoding=&encodingendifset fencs=utf-8,gbk,chinese,latin1set formatoptions+=mMset nobomb " 不使⽤ Unicode 签名if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'set ambiwidth=doubleendifelseechoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"endif" =========" 环境配置" =========" 保留历史记录set history=400" 命令⾏于状态⾏set ch=1set stl=\ [File]\ %F%m%r%h%y[%{&fileformat},%{&fileencoding}]\ %w\ \ [PWD]\ %r%{GetPWD()}%h\ %=\ [Line]\ %l,%c\ %=\ %P set ls=2 " 始终显⽰状态⾏" 制表符set tabstop=4"把tab转成空格"set expandtabset smarttabset shiftwidth=4set softtabstop=4" 状态栏显⽰⽬前所执⾏的指令set showcmd" ⾏控制set linebreakset nocompatibleset textwidth=80set wrap" ⾏号和标尺set numberset rulerset rulerformat=%15(%c%V\ %p%%%)" 控制台响铃:set noerrorbells:set novisualbell:set t_vb= "close visual bell" 插⼊模式下使⽤ <BS>、<Del> <C-W> <C-U>set backspace=indent,eol,start" 标签页set tabpagemax=20set showtabline=2" 缩进智能对齐⽅式set autoindentset smartindent" ⾃动重新读⼊set autoread"代码折叠"设置折叠模式set foldcolumn=4"光标遇到折叠,折叠就打开"set foldopen=all"移开折叠时⾃动关闭折叠"set foldclose=all"zf zo zc zd zr zm zR zM zn zi zN"依缩进折叠" manual ⼿⼯定义折叠" indent 更多的缩进表⽰更⾼级别的折叠" expr ⽤表达式来定义折叠" syntax ⽤语法⾼亮来定义折叠" diff 对没有更改的⽂本进⾏折叠" marker 对⽂中的标志折叠set foldmethod=syntax"启动时不要⾃动折叠代码set foldlevel=100"依标记折叠set foldmethod=marker"语法⾼亮syntax enablesyntax on"设置配⾊set guifont=Courier\ New:h12colorscheme desert"设定⽂件浏览器⽬录为当前⽬录set bsdir=buffer" ⾃动切换到⽂件当前⽬录set autochdir"在查找时忽略⼤⼩写set ignorecaseset incsearchset hlsearch"设置命令⾏的⾼度set cmdheight=2"显⽰匹配的括号set showmatch"增强模式中的命令⾏⾃动完成操作set wildmenu"使PHP识别EOT字符串hi link phpheredoc string"php语法折叠let php_folding = 1"允许在有未保存的修改时切换缓冲区set hidden"实现全能补全功能,需要打开⽂件类型检测"filetype plugin indent on"打开vim的⽂件类型⾃动检测功能"filetype on"保存⽂件的格式顺序set fileformats=dos,unix"置粘贴模式,这样粘贴过来的程序代码就不会错位了。
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配置(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帮助⽂档。
VI基本配置
if getline('.')[col('.') - 1] == a:char
return "/<Right>"
else
return a:char
endif
endf
下载tabbar.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。
sp file.xxx
注意: 在打开新文件时,光标一定要处在主编辑界面中,这样才能保证标签的位置的位置合适。
关闭标签页使用:bd file.xxx
6. a.vim插件安装
下载tabbar.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。
E.g. if you are editing foo.c and need to edit foo.h simply execute :A and
设置C/C++ 语言的具体缩进方式(以我的windows 风格为例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
如果想在左侧显示文本的行号,可以用以下语句:
set nu
最后,如果没有下列语句,就加上吧:
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
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操作
∙如果该文件存在,文件被打开并显示内容∙如果该文件不存在,当编辑后第一次存盘时创建它∙如果目录不存在,将无法保存编辑内容2. vim的三种模式vim是一款模式编辑器,对vim的操作进行在vim的三种模式之上。
所谓三种模式分别是:1.命令(Normal)模式,默认模式,主要作用是移动光标,剪切/粘贴文本。
2.插入(Insert)或编辑模式,主要作用是修改文本。
3.扩展命令(extended command )模式,主要作用是保存,退出等。
所以想要娴熟操作vim,在三种模式之间的切换是必不可少的。
vim的模式切换是以命令模式为基础的,也就是打开文件时的第一个界面,vim打开文件默认是在命令模式界面。
所以无论你是要进入扩展模式还是插入模式,都需要在命令模式进行切换,扩展模式和插入模式之间是不能直接切换的。
vim三种主要模式之间的切换:3.命令模式1.命令模式进入插入模式2.命令模式光标间跳转2.1字符间跳转:2.2单词间跳转:2.3当前页跳转:2.4行首行尾跳转:2.5行间移动:2.6句间移动2.7 段落间移动:3.命令模式翻屏操作4.命令模式编辑操作4.1字符编辑:4.2替换命令(r, replace)4.3删除命令(d,delete)4.4复制命令(y, yank):4.5粘贴命令(p, paste):4.6改变命令(c, change)4.7撤销更改4.2扩展命令模式:地址定界在扩展命令模式下进行地址定界方法一:利用行数进行定界格式|:开始#,结束#4.3扩展命令模式:查找查找命令:4.4扩展命令模式:查找并替换扩展命令模式下,在命令提示符后面输入字母―s‖,然后按格式输入要查找和替换的内容,便可进行查找替换。
格式:s/要查找的内容/替换为的内容/修饰符格式项作用要查找的内容分割符后输入要查找的内容,可使用模式,也就是正则表达式。
替换为的内容不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用―&‖引用前面查找时查找到的整个内容修饰符:i 忽略大小写g 全局替换;默认情况下,每一行只替换第一次出现gc 全局替换,每次替换前询问如果查找和替换的内容中包含路径,再使用"/"作为分割符就不方便了,这时可以使用@、#等特殊符号来做分割符。
Vim---配置实用的.vimrc文件
Vim---配置实⽤的.vimrc⽂件配置⾃⼰电脑的vim,配置⼀个根据个⼈习惯使⽤的.vimrc⽂件。
我的有以下功能等,读者可以根据⾃⼰的个⼈喜好去配置⾃⼰的vim。
1.⾃动插⼊⽂件头,新建C、C++源⽂件时⾃动插⼊表头:包括⽂件名、作者、联系⽅式、建⽴时间等。
(我个⼈是不太喜欢新建源⽂件时⾃动插⼊表头⽂件名,所以将其注释,读者可根据需求⾃⾏更改)2.按“F2”可以直接消除代码中的空⾏3.“F3”可列出当前⽬录⽂件,打开树状⽂件⽬录4.⽀持⿏标选择、⽅向键移动5.代码⾼亮,⾃动缩进,显⽰⾏号,显⽰状态⾏(我个⼈不太喜欢显⽰⾏号,显⽰状态⾏,读者可根据需求⾃⾏修改)6.按“Ctrl + P”可⾃动补全7.[]、{}、()、""、' '等都⾃动补全8.其他功能读者可以研究以下⽂件下⾯是在Linux下配置⾃⼰的vim的⽅法:⼀:1.⾸先打开linux的终端,使⽤ su root命令切换⾄root权限。
2.使⽤ls -al命令会打开当前的所有⽂件包括隐藏⽂件,如下图,找到.vimrc⽂件,如果没有这个⽂件,可以去创建⼀个.vimrc⽂件。
3.之后打开.vimrc⽂件将下⾯的代码粘贴进去,然后根据个⼈需求去修改为适合⾃⼰的.vimrc⽂件,保存退出,然后你可以⽤vim创建⼀个⽂件看⼀下效果,然后再根据个⼈需求⾃⾏修改。
这个⽅法配置的.vimrc⽂件可以由⽤户权限去⽤vim创建⽂件进⾏编辑,root权限⽤vim创建的⽂件⽆法达到你配置的效果。
⼆:如果你想要你配置的⽂件达到⽆论是⽤户权限还是root权限都可以⽤vim创建的⽂件达到你配置的⽂件的效果,可以⽤如下⽅法。
1.⾸先你转到根⽬录,在根⽬录下有个 etc 的⽂件夹,然后进到etc的⽬录下,然后列出当前的所有⽂件。
2.在当前的⽬录中的所有⽂件你会找到⼀个vimrc的⽂件,然后打开该⽂件将代码粘贴进去,然后根据个⼈需求去修改为适合⾃⼰的vimrc⽂件,保存退出,然后此时⽆论你⽤root权限还是⽤户权限⽤vim去创建⽂件都可以达到你配置的效果(提醒⼀下,如果你配置vimrc⽂件出错时,建议你在进⼊etc/⽬录下时,在修改vimrc⽂件之前可以先保存⼀份vimrc⽂件,之后再修改vimrc,防⽌你出错时还可以⽤备份的vimrc⽂件)。
ViVim基本用法
ViVim基本⽤法Vi/Vim是Linux中⼀款功能强⼤的编辑器,vi是Visual Interface的缩写,即可视化接⼝,vim是vi iMprove的缩写,即 vi的增强版(具有语法着⾊功能)。
它在Linux上的地位就仿佛Edit程序在DOS上⼀样。
它可以执⾏输出、删除、查找、替换、块操作等众多⽂本操作,⽽且⽤户可以根据⾃⼰的需要对其进⾏定制。
Vi不是⼀个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进⾏编排,它只是⼀个⽂本编辑程序。
vi没有菜单,只有命令,且命令繁多。
1.Vim配置⽂件全局vim配置⽂件:/etc/vimrc个⼈vim配置⽂件:~/.vimrc当我们需要设置Vim的部分功能时,我们可以通过修改配置⽂件来实现!例如:永久添加⾏号--------->在配置⽂件中加上set nu2.Vim三级模式及相互切换 三种模式 命令模式(默认):刚进⼊vim的时候,默认就是命令模式,可以复制⾏,删除⾏等。
输⼊模式:可以输⼊内容。
末⾏模式:在最下边,除编辑模式,可以输⼊诸多管理员命令命令⾏模式 任何时候,不管⽤户处于何种模式,只要按⼀下ESC键,即可使Vi进⼊命令模式;我们在shell环境(提⽰符为$)下输⼊启动Vi命令,进⼊编辑器时,也是处于该模式下。
在该模式下,⽤户可以输⼊各种合法的Vi命令,⽤于管理⾃⼰的⽂档。
此时从键盘上输⼊的任何字符都被当做编辑命令来解释,若输⼊的字符是合法的Vi命令,则Vi在接受⽤户命令之后完成相应的动作。
但需注意的是,所输⼊的命令并不在屏幕上显⽰出来。
若输⼊的字符不是Vi的合法命令,Vi会响铃报警。
⽂本输⼊模式 在命令模式下输⼊插⼊命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进⼊⽂本输⼊模式。
在该模式下,⽤户输⼊的任何字符都被Vi当做⽂件内容保存起来,并将其显⽰在屏幕上。
在⽂本输⼊过程中,若想回到命令模式下,按键ESC即可。
mac终端颜色和vim颜色配置方式
mac终端颜⾊和vim颜⾊配置⽅式
⼀、mac终端颜⾊配置⽅法
1、偏好设置
进⼊终端-偏好设置-描述⽂件-⽂本,在这可以设置终端的背景颜⾊,基本字体颜⾊,透明度等。
2、更改ls时的显⽰颜⾊
1)进⼊~⽬录 cd ~
2)通过ls -a命令查看.profile或者.bash_profile配置⽂件(找到⼀个就可以),vim进⼊⽂件进⾏编辑
3)按i键进⼊修改模式,在⽂件末尾添加以下代码
export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
export PS1='\[\e[01;33m\][\[\e[01;32m\]\u\[\e[01;33m\]@\[\e[01;35m\]\h:\[\e[01;33m\]] \[\e[01;36m\]\w \[\e[01; 32m\]\$ '
4)按esc退出修改模式,输⼊:wq!保存退出,输⼊下⾯代码使配置⽣效
source .bash_profile 这样就ok了
⼆、VIM颜⾊配置⽅式
1、进⼊~⽬录 cd ~
2、执⾏以下命令复制系统的vim配置⽂件到⽤户⽬录
cp -r /usr/share/vim/vimrc ~/.vimrc
3、编辑.vimrc⽂件配置我们的vim。
按i键进⼊修改模式,在⽂件末尾添加上相应的vim配置见以下代码。
添加完成之后照样是esc之后输⼊:wq!保存退出,再次vim就能看到效果
syntax on " 语法⾼亮
colorscheme darkblue "主题颜⾊。
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程序。
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'选项。
GVIM_vimrc配置
"设定windows 下gvim启动时最大化"autocmdGUIEnter * simalt ~x"使用配色方案colors torte"设置不自动换行setnowrap"设置右下角标尺set ruler"设定光标离窗口上下边界5 行时窗口自动滚动"setscrolloff=5"默认区分大小写"setnoignorecase"去除工具栏setguioptions-=T"去除菜单栏setguioptions-=m"去除右边滚动条setguioptions-=r"设置冒号命令和搜索命令的命令历史列表的长度set history=1000"设定在任何模式下鼠标都可用set mouse=a"用确认对话框(对于gvim)或命令行选项(对于vim)来代替有未保存内容时的警告信息"set confirm"设置用于GUI图形用户界面的字体列表。
"setguifont=SimSun\ 10"设置不兼容VI模式,在增强模式下运行setnocompatible"设置GVIM默认目录lcd d:/wwwroot"设定文件浏览器目录为当前目录"自动切换目录setautochdir"不设定此项的话在插入状态无法用退格键和Delete 键删除回车符set backspace=indent,eol,start"覆盖文件时不备份"setnobackup"设置备份时的行为为覆盖setbackupcopy=yes"长行不能完全显示时显示当前屏幕能显示的部分。
默认值为空,长行不能完全显示时显示@。
"set display=lastline"设置字符编码set encoding=utf-8"文件编码集” fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将fileencoding设置为最终探测到的字符编码方式。
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
" 键删除回车符
Neovim+Coc.nvim配置目前个人最舒服终端编辑环境(PythonC++)
Neovim+Coc.nvim配置⽬前个⼈最舒服终端编辑环境(PythonC++)1. 前⾔⽬前最常⽤的环境还是linux的服务器,所以最终选择的是nvim作为⾃⼰的⾸要编辑器,毕竟没有写⼀些⽐较⼤型的项⽬。
在经过多次的摸索后,我还是选择了Neovim + Coc.nvim,放弃了 YCM。
在⽂章的最后,有完整的init.vim⽂件,这个⽂件是我⽬前正在使⽤的,相对于⽂中的部分有变动。
本⽂希望在你学习和使⽤vim的过程中,帮助你熟悉相关的环境配置。
这⾥假设在没有root权限的情况,考虑的是软件的源码安装(相⽐之下,直接⽤各个发⾏版的命令安装会更加简单)。
2.Neovim 和插件安装2.1 Neovim 安装neovim:选择最新的release 的版本,这⾥除了source code 是源码外,其他的都是编译好的,直接wget https:///neovim/neovim/releases/download/v0.4.3/nvim-linux64.tar.gztar -zxvf nvim-linux64.tar.gz然后把neovim路径下的bin加⼊到~/.bashrc,然后在source⼀下就算是成功了。
2.2 插件安装1. Vim-Plug是⼀个我很喜欢的vim的插件管理⼯具,使⽤下⾯的命令可以进⾏安装(其他平台和⼯具的安装⽅法地址中有):sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \https:///junegunn/vim-plug/master/plug.vim'这样,这个 ~/.local/share/nvim/site/autoload/plug.vim就会在你的⽬录下,并且vim会被调⽤。
创建nvim的配置⽂件(这个配置⽂件和vim的'.vimrc')⼀样:mkdir ~/.config/nvim/nvim ~/.config/nvim/init.vim然后把call plug#begin('~/.vim/plugged')call plug#end()加⼊到init.vim中,这样以后在call begin和call end 之间加上插件就可以使⽤了。
vim配置大全
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的忠实用户,自从2年多前从help里知道了:edit++enc=xxx这个命令之后,我就没有去了解过vim的编码设定了。
这些年来,我遇到编码出错,总是:edit++enc=xxx。
今天:help了一下encoding等,终于搞清楚了相关的各个变量的作用和关系。
简单的说,有三个设置。
(我下面基本以中文环境来作为说明)1) 在.vimrc或者_vimrc里加入setfileencodings=utf-8,gb2312,gbk,gb18030,big5这句就基本OK了。
vim会依次使用这些编码对文件进行编码的猜测。
2) 如果还是不行,那么在打开文件之后,用:edit++enc=gbk这个命令强制使用某个编码。
3) 如果依然不行,请检查你的$LANG环境变量。
下面是详细的说明。
vim编码主要涉及三个变量。
encodingvim的内部编码,包括内存数据的编码,vim配置文件的编码。
encoding取自变量$LANG,如果$LANG为空,则取latin1。
这个编码应该和你的终端编码保持一致的。
fileencoding文件的编码。
vim在加载文件的时候,会把这个编码转换成encoding参数的编码。
同样的,保存文件的时候,内存的编码会由encoding转变为fileencoding。
需要注意的是,在vimrc里设置这个参数,不会起作用。
因为打开一个文件的时候,fileencodings或者encoding会覆盖fileencoding。
关于这个,可以看下面提到的打开文件流程。
fileencodings=utf-8,gbk,gb2312vim在加载一个文件的时候,会依次尝试使用fileencodings里的编码作为fileencoding。
如果全部失败,那么vim会使用encoding作为fileencoding。
另外,如果vim使用了错误的编码,可以使用edit++enc=gbk这个命令。
Vim设置括号自动补全和快速跳出
Vim设置括号⾃动补全和快速跳出⼀、设置括号⾃动补全inoremap ' ''<ESC>iinoremap " ""<ESC>iinoremap ( ()<ESC>iinoremap [ []<ESC>iinoremap { {<CR>}<ESC>O其中花括号{设置,⾃动补全并换⾏缩进,这在写函数的时候或语句块的时候特别有⽤。
注:inoremap { {}<ESC>i<CR><ESC>V<O这句在我的环境中有问题,后来改为inoremap { {<CR>}<ESC>O参考:⼆、设置⾃动跳出⾃动补全的括号"设置跳出⾃动补全的括号func SkipPair()if getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.') - 1] == '}' return "\<ESC>la"elsereturn "\t"endifendfunc" 将tab键绑定为跳出括号inoremap <TAB><c-r>=SkipPair()<CR>参考:三、按键映射主要有map,noremap,unmap,mapclear四个命令,并且有四个前缀i,c,n,v修饰nore表⽰⾮递归,见下⾯的介绍n表⽰在普通模式下⽣效v表⽰在可视模式下⽣效i表⽰在插⼊模式下⽣效c表⽰在命令⾏模式下⽣效map表⽰递归的映射unmap表⽰删除某个映射mapclear表⽰清楚映射常⽤命令::map :noremap :unmap :mapclear:nmap :nnoremap :nunmap :nmapclear :vmap :vnoremap :vunmap :vmapclear :imap :inoremap :iunmap :imapclear :cmap :cnoremap :cunmap :cmapclear 参考:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
" 侦测文件类型
filetype on
" 载入文件类型插件/filetype plugin on后set completeopt才会有效(智能补全)
filetype plugin on
set completeopt=longest,menu
" 为特定文件类型载入相关缩进文件
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
if has("autocmd")
":autocmd! 删除所有之前的自动命令.
"在打开 java... 文件时才应用后面的两个配置文件.
"autocmd FileType java source ~/.vim/files/jcommenter.vim
set guioptions-=b
set guioptions-=r
set guioptions-=R
set guioptions-=l
set guioptions-=L
set guioptions-=T
set guioptions-=m
" 设定默认解码
set encoding=utf-8
" CTags的设定
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_Right_Window = 1
" 在搜索的时候是否忽略大小写
set noignorecase
" 高亮被搜索的内容
set hlsearch
" 在搜索时,输入的词句的逐字符高亮
set incsearch
" 输入:set list命令是应该显示些啥?
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 用空格代替制表符
set expandtab
" 不要换行
set nowrap
" 在行和段开始处使用制表符
set smarttab
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5
" 总是显示状态行
set laststatus=2
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 压缩方式
let Tlist_Compart_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1
" 不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 语法高亮
syntax on
" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""