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

从零到一:手把手教你用DJI E-Port套件为M350 RTK开发第三方负载(PSDK V3实战)

本文详细介绍了如何使用DJI E-Port套件为M350 RTK开发第三方负载,涵盖硬件配置、开发环境搭建及实战应用。通过PSDK V3开发套件,开发者可以高效实现负载与无人机的通信,适用于电力巡检等工业场景,提升开发效率与系统稳定性。

weixin_26841743的博客 703

知识图谱初步学习(一)——本体+Protege新手学习

文章目录前言(本体详解)1.本体概念2.本体分类3.本体组成4.本体构建方法一、protege简介二、软件使用步骤1.安装2.使用三、问题解决方案汇总 前言(本体详解) 在开始学习知识图谱的过程中,首先就是要了解什么是本体(ontology)。 1.本体概念 本体的概念最初源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体是可以在语义的层次上来对知识进行描述,可以看做是某一个领域知识的通用模型。 本体是从客观世界中抽象出来

qq_43654669的博客 3万+

IdeaVim配置指南

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

Hello World! 2347

点云从入门到精通技术详解100篇-点云的特征检测(续)

对每个维度的序列分别计算 DTW 距离,最后。权重将距离限制在较小的范围内,对于时间跨度大的数据集,过度限制了点对点的路径,同的,因此不能用欧氏距离来计算两个多元时间序列之间的距离,本文选用的是动态时。到的股票数据是未知分类的,因此该数据的相似性分析缺少有效的评价方式,通常需要。时间序列,简而言之,就是与时间相关的数据的集合,应用在生活工作中的方方面。时间序列的分段线性化表示的难点在于如何找出分段点,目前,对于分段点的研究。经过分段线性化之后,每个多元时间序列的维度是相同的,但是每一维的长度是不。

getusushu的博客 334

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

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

G_BrightBoy的专栏 7万+

手把手教你学simulink(40.1)--水力发电场景示例:基于 Simulink 的抽水蓄能电站水力发电

项目背景抽水蓄能电站是一种重要的储能技术,广泛应用于电力系统的调峰填谷、频率调节和备用电源。它通过在电力负荷低谷时将水从下水库抽到上水库储存,在电力负荷高峰时释放水进行发电,从而实现电能的高效利用。与传统的水电站不同,抽水蓄能电站可以在短时间内快速响应电网的需求,具有良好的灵活性和可靠性。本项目旨在使用 MATLAB/Simulink 模拟一个完整的抽水蓄能电站的水力发电过程,包括水泵-涡轮机系统、发电机、水道系统、控制系统等,并实现对电站的精确控制,确保其在不同工况下都能稳定运行。

MHD0815的博客 886

手把手教你学simulink(28.2)--四旋翼无人机景示例:基于自抗扰控制(ADRC)的无人机姿态稳定系统

通过上述代码实现,您可以逐步创建和搭建一个基于自抗扰控制的无人机姿态稳定系统。该系统能够实时估计和补偿外部扰动及模型不确定性,确保无人机姿态稳定。自抗扰控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。无人机动力学建模:建立无人机的六自由度(6-DOF)动力学模型,包括位置、速度、姿态角和角速度。自抗扰控制器设计。

MHD0815的博客 501

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

32、高光谱遥感技术在军事领域的应用解析

高光谱遥感技术凭借其高分辨率和精细光谱分析能力,在军事领域广泛应用于战场详细侦察、伪装目标识别及目标实际温度与发射率的检测,显著提升了目标识别精度和作战支持能力。同时,该技术在内陆水体成分反演、海洋环境监测和农业管理等领域也展现出巨大潜力。尽管面临数据量大、处理复杂、技术融合不足和仪器性能限制等挑战,未来通过人工智能融合、高效算法研发和先进仪器开发,高光谱遥感技术将在多领域实现更深入应用与发展。

blue的专栏 230

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

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

qq_34285557的博客 3004

攻克反光难题!YOLOv9工业缺陷检测实战:高反光件、微小划痕精准识别(附抗反光代码+产线数据)

文章摘要:本文针对不锈钢、铝合金等高反光工业件的缺陷检测难题,提出了一套“硬件抗反光+YOLOv9小目标增强”的解决方案。通过分析反光干扰(镜面/漫反射)和微小划痕(0.1mm级)两大核心问题,详细介绍了500万像素工业相机+偏振光源的硬件配置方案,以及基于偏振图像融合和超分辨率放大的预处理方法。最终实现误检率1.2%、微小划痕检出率99.3%的工业级检测效果,并提供了可落地的代码实现和车间实测数据。(148字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1041

rk3588主板PDM接口接数字MIC录音

本文介绍了Rockchip 3588平台上6麦克风PDM接口的硬件连接与软件调试过程。硬件方面展示了PDM0_CLK0_M0时钟脚和三组数据脚的连接方案。软件配置包括设备树修改,生成声卡节点,并提供了6通道录音命令示例。文章重点分析了两个常见问题:录音无声(需检查供电、接线和波形)和通道数据缺失(需正确配置rockchip,path-map寄存器映射)。最后通过Audition工具验证录音文件,确认各通道工作正常。调试过程完整展现了从硬件连接到软件配置的完整流程。

m0_60805802的博客 1014

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

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

Codiggerworld的博客 854

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

将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万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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、付费专栏及课程。

余额充值