VIMRC 构建强大的vim,附带IDE强大的各种功能

将VIM配置为IDE 前言 我们在服务器上做开发时,可以选择使用字符界面或者GUI界面。 由于远程GUI界面比较吃资源,因此其流畅度和本地操作系统的GUI界面相差甚远,使用体验往往不尽人意。 因此,一般首选字符界面做开发,VIM 编辑器是字符界面下的一款神器。 VIM 编辑器在配置好各种插件后,可以媲美 Windows 下功能强大的 IDE 而又不显得臃肿。 本文的配置非常方便快捷,Ubuntu 下只需通过 apt 安... 阅读详情

使用VIM的程序员很多,这里提供一个VIMRC,提供了很多自动化的功能,比如高亮代码,自动完成等等。

"setlocal omnifunc=python3complete#Complete
" An example for a vimrc file.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2000 Jan 06
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"	      for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"		for VMS:  sys$login:.vimrc

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible


"let &termencoding=&encoding
"set fileencodings=utf-8,gbk,ucs-bom,cp936

set bs=2		" allow backspacing over everything in insert mode
"set ai			" always set autoindenting on
"set backup		" keep a backup file
set viminfo='20,\"50	" read/write a .viminfo file, don't store more
" than 50 lines of registers
set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set nu
"set bdir=~/.vimbackup
set nowrap
set bg=dark
set smarttab
set expandtab
set tabstop=4
" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" Make p in Visual mode replace the selected text with the "" register.
vnoremap p <Esc>:let current_reg = @"<CR>gvdi<C-R>=current_reg<CR><Esc>

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
syntax on
if &t_Co > 2 || has("gui_running")
	syntax on
	set hlsearch
endif

" Only do this part when compiled with support for autocommands.
" if has("autocmd")
"   autocmd BufRead *.txt set tw=78
fun SetTitle()
    call setline(1, "#coding=gbk")
    call append(line("."), "import os")
    call append(line(".") + 1,  "import sys")
    call append(line(".") + 2,  "import argparse")
    call append(line(".") + 3,  "import commands")
    call append(line(".") + 4,  "import logging")
    call append(line(".") + 5,  "")
    call append(line(".") + 6,  "logging.basicConfig(level = logging.DEBUG,")
    call append(line(".") + 7,  "        format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',")
    call append(line(".") + 8,  "        datefmt = '%Y-%m-%d %H:%M:%S',")
    call append(line(".") + 9,  "        filename = os.path.basename(__file__) + '.log',")
    call append(line(".") + 10, "        filemode = 'a')")
    call append(line(".") + 11, "")
    call append(line(".") + 12, "def perror_and_exit(message, status = -1):")
    call append(line(".") + 13, "    sys.stderr.write(message + '\\n')")
    call append(line(".") + 14, "    logging.info(message + 'sys exit')")
    call append(line(".") + 15, "    sys.exit(status)")
    call append(line(".") + 16, "")
    call append(line(".") + 17, "if __name__ == '__main__':")
    call append(line(".") + 18, "    ")
    call append(line(".") + 19, "   pass")
    call cursor(20, 5)
endfunc

if has("autocmd")

    autocmd BufNewFile *.py exec ":call SetTitle()"
	" In text files, always limit the width of text to 78 characters
	autocmd BufRead *.txt set tw=78
	augroup cprog
		" Remove all cprog autocommands
		au!

		" When starting to edit a file:
		"   For C and C++ files set formatting of comments and set C-indenting on.
		"   For other files switch it off.
		"   Don't change the order, it's important that the line with * comes first.
		autocmd FileType *      set formatoptions=tcql nocindent comments&
		autocmd FileType c,cpp  set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
	augroup END

	augroup gzip
		" Remove all gzip autocommands
		au!

		" Enable editing of gzipped files
		" set binary mode before reading the file
		autocmd BufReadPre,FileReadPre	*.gz,*.bz2 set bin
		autocmd BufReadPost,FileReadPost	*.gz call GZIP_read("gunzip")
		autocmd BufReadPost,FileReadPost	*.bz2 call GZIP_read("bunzip2")
		autocmd BufWritePost,FileWritePost	*.gz call GZIP_write("gzip")
		autocmd BufWritePost,FileWritePost	*.bz2 call GZIP_write("bzip2")
		autocmd FileAppendPre			*.gz call GZIP_appre("gunzip")
		autocmd FileAppendPre			*.bz2 call GZIP_appre("bunzip2")
		autocmd FileAppendPost		*.gz call GZIP_write("gzip")
		autocmd FileAppendPost		*.bz2 call GZIP_write("bzip2")

		" After reading compressed file: Uncompress text in buffer with "cmd"
		fun! GZIP_read(cmd)
			" set 'cmdheight' to two, to avoid the hit-return prompt
			let ch_save = &ch
			set ch=3
			" when filtering the whole buffer, it will become empty
			let empty = line("'[") == 1 && line("']") == line("$")
			let tmp = tempname()
			let tmpe = tmp . "." . expand("<afile>:e")
			" write the just read lines to a temp file "'[,']w tmp.gz"
			execute "'[,']w " . tmpe
			" uncompress the temp file "!gunzip tmp.gz"
			execute "!" . a:cmd . " " . tmpe
			" delete the compressed lines
			'[,']d
			" read in the uncompressed lines "'[-1r tmp"
			set nobin
			execute "'[-1r " . tmp
			" if buffer became empty, delete trailing blank line
			if empty
				normal Gdd''
			endif
			" delete the temp file
			call delete(tmp)
			let &ch = ch_save
			" When uncompressed the whole buffer, do autocommands
			if empty
				execute ":doautocmd BufReadPost " . expand("%:r")
			endif
		endfun

		" After writing compressed file: Compress written file with "cmd"
		fun! GZIP_write(cmd)
			if rename(expand("<afile>"), expand("<afile>:r")) == 0
				execute "!" . a:cmd . " <afile>:r"
			endif
		endfun

		" Before appending to compressed file: Uncompress file with "cmd"
		fun! GZIP_appre(cmd)
			execute "!" . a:cmd . " <afile>"
			call rename(expand("<afile>:r"), expand("<afile>"))
		endfun

	augroup END

	" This is disabled, because it changes the jumplist.  Can't use CTRL-O to go
	" back to positions in previous files more than once.
	if 0
		" When editing a file, always jump to the last cursor position.
		" This must be after the uncompress commands.
		autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal `\"" | endif
	endif

endif " has("autocmd")

set shiftwidth=4
"set cindent
set wrap
set ts=4
set sw=4
set showcmd

map <F8> ggVG= <CR>
map <F9> :set nonu <CR>
map <F10> :set nu <CR>
map <F11> :silent! Tlist<CR>
map ,, :A<CR>
map ,- :AS<CR>
map ,= :AV<CR>

"omnicppcomplete config
set nocp
filetype plugin on
filetype indent on

set tags=tags;
"set tags+=~/home/work/tags
"set tags+=~/install/tags/wbl_tags
"set tags+=~/station/tags
"set tags+=~/qqcard_publish/tags
"set tags+=~/esales_publish/tags
"au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/station/tags ~/station/
"au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/qqcard_publish/tags ~/qqcard_publish/
"au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/esales_publish/tags ~/esales_publish/
"au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
map <F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

"let OmniCpp_ShowPrototypeInAbbr = 1
let g:neocomplcache_enable_at_startup = 1

"taglist config
let Tlist_Ctags_Cmd = '/usr/bin/ctags' "设定linux系统中ctags程序的位置
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 0 "在右侧窗口中显示taglist窗口 

"csope
"cscope add ~/Cip_esales_related/cscope/cscope.out
"nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
" Only do this part when compiled with support for autocommands
if has("autocmd")
  " 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
endif





将vim打造为强大的IDE 将vim打造为强大的IDE(Ubuntu) 前言:首先需要有 vim python2或3 git 下载:sudo apt-get install xxx 一.安装插件管理器vim-plug(亲测比vundle好用-个人观点) 1.检查当前用户下是否有vim文件夹:~/.vim 没有,自己创建: mkdir ~/.vim 2.创建相应的文件夹(在~/.vim下创建): mkdir autoload mkdir plugged //存放plug下载的.vim插件 mkdir plugin //通用文件夹,存放自 阅读详情

相关推荐

VIM打造成IDE

1.安装git 由于VIM的包管理软件Vundle需要Git支持,所以第一步我们先安装git sudo apt-get install git 2.安装Vundle Vundle是VIM的包管理软件,我们的插件大部分是通过这个包管理软件进行安装的,还有一部分是系统自带的,使用系统命令安装即可 2.1下载 执行git clone命令进行下载 git clone https://gi...

mill_li的博客 1089

全网最详细IDEAvim配置(.ideavimrc)

四百多行配置,含有中文标注,并且按照字母进行排序

Leivzy的博客 1万+

快速构建Vim IDE环境的配置指南

Vim作为一个功能强大的文本编辑器,是许多程序员的首选工具。它不仅仅是一个简单的编辑器,而是可以通过各种插件和自定义扩展成为一款强大的集成开发环境(IDE)。其内置的脚本语言支持,配合插件系统,可以实现代码高亮、代码折叠、自动补全、语法检查等高级功能,为开发者提供高效、便捷的代码编写体验。插件管理器是Vim生态中不可或缺的一部分,它允许用户轻松管理插件的安装、更新和卸载。常见的插件管理器有Vundle、Pathogen、vim-plug等。以vim-plug为例,以下是如何使用。

weixin_36289742的博客 716

最全VIM in PyCharm 的.ideavimrc文件的键盘设置 1.0

ideavimrc —— 插件vim在PyCharm的配置文件,位于C盘Administrator目录,通过修改可以无限绑定各种键。

abenl的博客 1479

打造高效vim IDE配置:从vimrc到vundle插件管理

vimrc文件是Vim编辑器的配置文件,它允许用户为Vim编辑器设置特定的配置选项和快捷键映射,以适应个人的编辑习惯和开发需求。此文件通常位于用户的主目录下,文件名通常为.vimrc。在Vim启动时,它会自动加载这个文件中的配置,使得每次启动Vim时都可以拥有个性化的工作环境。vimrc文件中的设置可以包括用户界面的定制、快捷键映射、插件的加载等。用户可以通过修改vimrc文件来自定义Vim的许多行为,从而提高编码效率和优化编辑体验。环境变量的配置对于改善Vim的默认行为至关重要。例如,

weixin_35756373的博客 667

个性化你的Vim体验:.vimrc配置详解

Vim(Vi Improved)是一款强大的文本编辑器,起源于1976年的Vi编辑器,由 Bram Moolenaar 在1991年开发。Vim的设计初衷是为了提供一个高效、可编程的文本编辑环境。它以其高度可定制和强大的命令行操作闻名,成为了众多开发者在命令行界面下编辑文本的首选工具。在Vim的个性化使用中,.vimrc文件扮演着至关重要的角色。这是一个隐藏的配置文件,存在于用户的家目录下,负责存储所有的Vim设置。

weixin_31800911的博客 1298

IntelliJ IDEA 配置 .ideavimrc

ideavim 介绍中说如果需要配置该插件可以通过  .ideavimrc文件 在类unix系统中将 .ideavimrc 放置在用户根目录 ~/.ideavimrc 在windows系统中将.ideavimrc文件放置在如下目录 C:\Users\你的用户名\.ideavimrc windows系统中无法创建以 . 开头的文件,可以在记事本中通过另存为的方式创建,编

Bingo 1万+

ideavimrc:IntelliJ IDEA的VIM键位配置,快速配置USTC源

ideavimrc:IntelliJ IDEA的VIM键位配置,快速配置USTC源

【Idea+Vim】Idea安装Vim插件/IdeaVim剪切板

IdeaVim使用进阶中

3Andman的博客 3238

【UV打印机】PrintExp打印软件教程(四)-设置校准电压

序号名称功能说明1校准材料设置定义当前打印材料,不同的材料参数绑定不同的校准值2向导勾选进行校准向导操作3校准类型包括喷头安装、步进校准、喷头间距、套色校准、双向校准4类型子项同类型子项5操作步骤校准存在步骤和校准说明示意图。

Print World的专栏 5074

LeGO-LOAM运行kitti数据集

文章目录1. kitti-lego-loam2. 改动3. 实验结果4. evo轨迹测评 1. kitti-lego-loam 链接:kitti-lego-loam kitti-lego-loam提供了将kitti序列转化成rosbag的代码,在kittibag中. 需要注意下数据文件的存放顺序,以00序列为例: datafolder          |____results          &

Zlp19970106的博客 8704

IdeaVim配置指南

IdeaVim是 JetBrains 系列 IDE(如 IntelliJ IDEA, WebStorm, PyCharm 等)中的一个插件,让你在 IDE 里使用 Vim 的按键习惯,大大提升效率。安装方法:在 IDE 中打开设置(Settings)→插件(Plugins) → 搜索IdeaVim→ 安装并重启。

Hello World! 2347

Simulink模块库介绍(一)——信号源模块

Simulink模块库介绍(一)——信号源模块库目录Clock模块Digital Clock模块Band-Limited White Noise模块 目录 simulink模块库中提供了丰富的信号源模块组。逐一介绍,算是对之前做个总结吧 Clock模块 通过时钟模块,输出的时间作为判断呢,如下图,前2s之前为高斯白噪声,后2s为正弦曲线,共计10s。 Digital Clock模块 数字时钟模块主要用于离散系统的计时,sample time表示采用时间,如下图:分别是1s和0.5s的采样时间 Band-

5万+

VIM语法高亮、VIM代码补全、VIM结构化视图功能的配置实现(1)

=========================================== 为了更加方便的学习和研究一个开源c++项目(当然linux环境下),特地花了一两周的时间研究vim及其插件的配置和使用方法,整理出来:一来做个记录便于日后回顾查看,二来分享出来为大家提供方便。 vim是什么 vim是一款功能强大、支持各种插件、配置极为灵活的编辑器,且支持多种主流OS(linux、Unix

G_BrightBoy的专栏 7万+

【人工智能】大模型可以分为L0层:基础大模型/通用大模型、L1层:行业大模型、L2层:细分场景模型三个层级

大模型确实可以分为L0、L1、L2三个层级,这种分层架构不仅有助于提升模型的泛化能力和适应性,还能更好地满足不同行业和场景的需求。华为盘古大模型的分层架构(L0、L1、L2)在多个证据中得到了详细描述和验证。例如,华为云盘古大模型3.0明确分为L0基础大模型、L1行业大模型和L2场景模型三层架构。此外,其他来源也一致支持这一分层架构,如用友网络的企业服务大模型、智谱AI的GLM-4系列等。

奶爸的编程之路,也就一周冷个三天 3982

医院批量排班实战指南(三)日期列表生成与时段批量操作

在上一篇《批量排班功能实现指南(二):日期与时段设置》中,我们完成了日期范围选择和重复规则配置的界面搭建,实现了从第一步到第二步的跳转功能。现在我们已经可以选择日期范围和重复规则,但还缺少最关键的功能——根据规则生成日期列表并进行时段配置。本篇将继续深入批量排班的核心功能——日期列表生成与时段批量操作。根据日期范围和重复规则智能生成日期列表为每个日期配置上午、下午、夜诊时段批量时段操作提升配置效率日期列表的展示与管理。

低代码布道师的博客 1347

gemini-watermark-remover 的 npm Trusted Publishing 配置:基于 GitHub Actions OIDC 的无 Token 发布实战

本文以 `@pilio/gemini-watermark-remover` 开源仓库为实例,讲解如何通过 npmjs.com 的 **Trusted Publisher** 能力,让 GitHub Actions 利用 OIDC(OpenID Connect)身份直接发布 npm 包,从而彻底告别长期 `NPM_TOKEN`。读完本文,你将掌握 Trusted Publisher 的一次性配置步骤

gitblog_00967的博客 600

电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异

电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异

Soly_kun的博客 733

Vim插件合集 (打造你的专属炫酷IDE)

Vim插件合集 本篇 主要来介绍一下 如何使用 Vim的插件功能 去把Vim打造成 炫酷 多功能的IDE ,让你可以用Vim编写Python Go 等等。。 而不用繁重的 Pycharm 等高级Ide 效果图 前置知识 vim映射:就是映射你自己的快捷键 到 对应的操作 ,这个不明白可以后续了解一下 不影响本篇 1.安装Vim插件管理器 VimPlug vim默认提供插件功能,但是如果你通过手动的方式去集成插件 那么太麻烦 太低效了,所以有vim的插件管理器去管理 我们需要的插件,这样会更加方

qq_34285557的博客 3004

工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定

上图: 说明一下,工业相机有TTL逻辑电平触发,也有光耦触发等。 这里一般我们用电路板驱动,就用GPIO触发模式, 这里,准备了两个GPIO触发模式,为LINE2,LINE3都可以选择,然后有一个GPIO_GND 如果,你只有一个触发接口,那么如图,选两个就好了。 实际接法如图。 ...

山云的专栏 1万+

YOLOv改进 | YOLOv11添加WTConv小波卷积,能够更有效地捕捉局部和全局特征

在计算机视觉目标检测领域,YOLO(You Only Look Once)系列算法凭借“单阶段检测”的高效性(一次前向传播同时完成目标定位与分类),已成为工业界与学术界的主流选择。从YOLOv1到YOLOv11,算法持续迭代优化,在速度与精度之间寻求平衡,广泛应用于自动驾驶、智能安防、工业质检等场景。为解决上述问题,本文提出一种基于,将输入特征图分解为不同频率的子带(低频全局信息与高频局部细节),并分别通过卷积操作提取局部与全局特征,最后融合多尺度特征,从而更有效地捕捉目标的局部细节与全局结构。

走向CTO的路上... 1248

打造专属 Vim:.vimrc 配置从入门

纯爱好者还是追求效率的开发者,找到最适合自己的工具才是最重要的。非常强大,但如果你想要更现代化的开箱即用体验,不妨试试。告别默认设置的束缚,一起打造属于你的高效编辑器。的配置文件,每次启动时都会自动加载。将制表符转换为空格,保证跨编辑器格式统一。显示当前行号,其他行显示相对行号。快捷键自定义:指尖上的效率革命。快速保存(符合现代编辑器习惯),告诉编辑器如何运行和表现。让你能快速计算行间距离,比如。:注释掉最近添加的配置(使用。写代码时自动保持正确的缩进。支持,精准的代码跳转和补全。可以用鼠标选择、滚动等。

Codiggerworld的博客 854

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java vim ide_把VIM配置成IDE开发环境 | 学步园

VIM常用命令VIM命令图VIM键盘布局图VIM键盘布局英文VIM键盘布局中文将VIM配置成IDE(通过 VIM基本插件 和VIM配置文件)Ubuntu14下我的VIM IDE配置的效果图图-1:编辑环境图-2:make编译环境及错误输出Quickfix列表1、安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可:user@ubuntu$sudo apt-g...

weixin_33324435的博客 335

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

将VIM打造成强大的IDE

Code Issues0 Pull Requests0  Pulse Graphs HTTPS clone URL You can clone with HTTPS orSubversion.   Clone in Desktop Download ZIP use vim as IDE

Windeal 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Vim实战手册(10)Vimide——打造你自己的IDE(C)

转载请注明来自“柳大的优快云博客”:http://blog.csdn.net/poechant     经过《Vim实战手册(8)Vimide——打造你自己的IDE(A)》和《Vim实战手册(9)Vimide——打造你自己的IDE(B)》两篇博文,你可能还不满足。因为当我们用Visual Studio、Eclipse、Xcode等编辑器时,有一些非常强大的功能,比如:    (1

麦克船长的技术笔记 6058

python-vimrc路线图展望:Python开发者的VIM未来趋势

**python-vimrc** 是一套专为 Python / Cython / C 开发者打造的 VIM 配置方案,它把补全、语法检查、文件导航等功能一次性集成到位。这篇文章将带你回顾它的现状,并展望 Python 开发者在 VIM 世界中的未来趋势,帮你判断这条路线是否值得继续投入。 > 核心关键词:python-vimrc、VIM 配置、Python 开发环境、VIM 未来趋势 ---

gitblog_00389的博客 801
上一篇: Python 50行代码实现代理服务器(加强版)
下一篇: 简单的Client / Server 使用 linux 伯克利 socket实现 编辑
junfeng_feng
博客等级 码龄18年 13粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值