vim nerdtree 标签_牛逼了!教你如何打造一款高逼格的Vim神器

点击上方蓝色小字,关注“吾非同”

重磅干货,第一时间送达

9cf427a81a56edf5f115a46be9e7620a.png

cf19d2c8bb28a2b2b2a4e67f52ebcaa3.png

作者:枫上雾棋

链接:https://segmentfault.com/a/1190000011466454

Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享一个前端工作者不得不安装的一些插件,而关于 Vim 的简介,主题的选择,以及为何使用 vim-plug 来管理插件等内容,有兴趣的同学下来可以自己了解和对比下。

本文导航◈ 安装03%◈ 新手指南04%◈ 移动光标05%◈ 退出08%◈ 删除08%◈ 修改10%◈ 撤销11%◈ 复制粘贴剪切12%◈ 状态13%◈ 查找13%◈ 替换15%◈ 折叠16%◈ 执行外部命令17%◈ .vimrc18%◈ 基本配置23%◈ 取消备份23%◈ 文件编码23%◈ 显示行号24%◈ 取消换行24%◈ 显示光标当前位置25%◈ 设置缩进25%◈ 突出显示当前行26%◈ 查找27%◈ 左下角显示当前 vim 模式27%◈ 代码折叠28%◈ 主题29%◈ 插件配置32%◈ 树形目录32%◈ 代码,引号,路径补全46%◈ 语法高亮,检查50%◈ 文件,代码搜索56%◈ 加强版状态栏59%◈ 代码注释63%◈ git69%◈ Markdown71%◈ Emmet74%◈ html 576%◈ css 377%◈ JavaScipt82%◈ React91%◈ Prettier93%◈ 总结97%
安装
sudo apt-getinstall vim// Ubuntu

其他平台,可以自行谷歌。

新手指南
vimtutor// vim 教程

上面是史上最简单,最全面的Vim基础教程,至今无人超越。

下面是作者基于上面的归纳:

移动光标
# hjkl
# 2w 向前移动两个单词
# 3e 向前移动到第 3 个单词的末尾
# 0 移动到行首
# $ 当前行的末尾
# gg 文件第一行
# G 文件最后一行
# 行号+G 指定行
# +o 跳转回之前的位置
# +i 返回跳转之前的位置
退出
#  进入正常模式
# :q! 不保存退出
# :wq 保存后退出
删除
# x 删除当前字符
# dw 删除至当前单词末尾
# de 删除至当前单词末尾,包括当前字符
# d$ 删除至当前行尾
# dd 删除整行
# 2dd 删除两行
修改
# i 插入文本
# A 当前行末尾添加
# r 替换当前字符
# o 打开新的一行并进入插入模式
撤销
# u 撤销
# +r 取消撤销
复制粘贴剪切
# v 进入可视模式
# y 复制
# p 粘贴
# yy 复制当前行
# dd 剪切当前行
状态
#+g 显示当前行以及文件信息
查找
# / 正向查找(n:继续查找,N:相反方向继续查找)
# ? 逆向查找
# % 查找配对的 {,[,(
# :set ic 忽略大小写
# :set noic 取消忽略大小写
# :set hls 匹配项高亮显示
# :set is 显示部分匹配
替换
# :s/old/new 替换该行第一个匹配串
# :s/old/new/g 替换全行的匹配串
# :%s/old/new/g 替换整个文件的匹配串
折叠
# zc 折叠
# zC 折叠所有嵌套
# zo 展开折叠
# zO 展开所有折叠嵌套
执行外部命令
# :!shell 执行外部命令
.vimrc

.vimrc 是 Vim 的配置文件,需要我们自己创建:

cd Home               // 进入 Home 目录
touch .vimrc          // 配置文件

# Unix
# vim-plug
# Vim
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# Neovim
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

其他平台,可以查看 vim-plug[1]。

基本配置
取消备份
set nobackup
set noswapfile
文件编码
setencoding=utf-8
显示行号
setnumber
取消换行
setnowrap
显示光标当前位置
setruler
设置缩进
set cindent
set tabstop=2
set shiftwidth=2
突出显示当前行
setcursorline
查找
set ic
set hls
set is
左下角显示当前vim模式
setshowmode
代码折叠
#启动 vim 时关闭折叠代码
set nofoldenable
主题
syntax enable
set background=dark
colorscheme solarized

◈ altercation/vim-colors-solarized[2]
◈ Anthony25/gnome-terminal-colors-solarized[3]

插件配置
树形目录
Plug 'scrooloose/nerdtree'
Plug 'jistr/vim-nerdtree-tabs'
Plug 'Xuyuanp/nerdtree-git-plugin'

autocmd vimenter * NERDTree
map  :NERDTreeTogglelet NERDTreeShowHidden=1let g:NERDTreeShowIgnoredStatus = 1let g:nerdtree_tabs_open_on_console_startup=1let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔︎",
    \ 'Ignored'   : '☒',
    \ "Unknown"   : "?"
    \ }# o 打开关闭文件或目录# e 以文件管理的方式打开选中的目录# t 在标签页中打开# T 在标签页中打开,但光标仍然留在 NERDTree# r 刷新光标所在的目录# R 刷新当前根路径# X 收起所有目录# p 小写,跳转到光标所在的上一级路径# P 大写,跳转到当前根路径# J 到第一个节点# K 到最后一个节点# I 显示隐藏文件# m 显示文件操作菜单# C 将根路径设置为光标所在的目录# u 设置上级目录为根路径# ctrl + w + w 光标自动在左右侧窗口切换# ctrl + w + r 移动当前窗口的布局位置# :tabc 关闭当前的 tab# :tabo   关闭所有其他的 tab# :tabp   前一个 tab# :tabn   后一个 tab# gT      前一个 tab# gt      后一个 tab

◈ scrooloose/nerdtree[4]
◈ vim-nerdtree-tabs[5]
◈ nerdtree-git-plugin[6]

代码,引号,路径补全
Plug 'Valloric/YouCompleteMe'
Plug 'Raimondi/delimitMate'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }

◈ Valloric/YouCompleteMe[7]
◈ Raimondi/delimitMate[8]
◈ Shougo/deoplete.nvim[9]

语法高亮,检查
Plug 'sheerun/vim-polyglot'
Plug 'w0rp/ale'

let g:ale_linters = {
\    'javascript': ['eslint'],
\    'css': ['stylelint'],
\}
let g:ale_fixers = {
\    'javascript': ['eslint'],
\    'css': ['stylelint'],
\}
let g:ale_fix_on_save = 1

let g:ale_sign_column_always = 1
let g:ale_sign_error = '●'
let g:ale_sign_warning = '▶'

nmap   (ale_previous_wrap)
nmap   (ale_next_wrap)

◈ w0rp/ale[10]
◈ sheerun/vim-polyglot[11]

文件,代码搜索
Plug 'rking/ag.vim'
Plug 'kien/ctrlp.vim'

◈ kien/ctrlp.vim[12]
◈ ggreer/the_silver_searcher[13]
◈ rking/ag.vim[14]

加强版状态栏
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

let g:airline_theme='papercolor'

◈ vim-airline/vim-airline[15]
◈ vim-airline/vim-airline-themes[16]

代码注释
Plug 'scrooloose/nerdcommenter'

# cc // 注释
# cm 只用一组符号注释
# cA 在行尾添加注释
# c$ /* 注释 */
# cs /* 块注释 */
# cy 注释并复制
# c 注释/取消注释
# ca 切换 // 和 /* */
# cu 取消注释

let g:NERDSpaceDelims = 1
let g:NERDDefaultAlign = 'left'
let g:NERDCustomDelimiters = {
            \ 'javascript': { 'left': '//', 'leftAlt': '/**', 'rightAlt': '*/' },
            \ 'less': { 'left': '/**', 'right': '*/' }
        \ }

◈ scrooloose/nerdcommenter[17]

git
Plug 'airblade/vim-gitgutter'
Plug 'tpope/vim-fugitive'

◈ airblade/vim-gitgutter[18]
◈ tpope/vim-fugitive[19]

Markdown
Plug 'suan/vim-instant-markdown'

let g:instant_markdown_slow = 1
let g:instant_markdown_autostart = 0
# :InstantMarkdownPreview

◈ suan/vim-instant-markdown[20]

Emmet
Plug 'mattn/emmet-vim'

let g:user_emmet_leader_key=''
let g:user_emmet_settings = {
         \ 'javascript.jsx' : {
            \ 'extends' : 'jsx',
         \ },
      \ }

◈ mattn/emmet-vim[21]

html 5
Plug'othree/html5.vim'

◈ othree/html5.vim[22]

css 3
Plug 'hail2u/vim-css3-syntax'
Plug 'ap/vim-css-color'

augroup VimCSS3Syntax
  autocmd!

  autocmd FileType css setlocal iskeyword+=-
augroup END

◈ hail2u/vim-css3-syntax[23]
◈ ap/vim-css-color[24]

JavaScipt
Plug 'pangloss/vim-javascript'
let g:javascript_plugin_jsdoc = 1
let g:javascript_plugin_ngdoc = 1
let g:javascript_plugin_flow = 1
set foldmethod=syntax
let g:javascript_conceal_function             = "ƒ"
let g:javascript_conceal_null                 = "ø"
let g:javascript_conceal_this                 = "@"
let g:javascript_conceal_return               = "⇚"
let g:javascript_conceal_undefined            = "¿"
let g:javascript_conceal_NaN                  = "ℕ"
let g:javascript_conceal_prototype            = "¶"
let g:javascript_conceal_static               = "•"
let g:javascript_conceal_super                = "Ω"
let g:javascript_conceal_arrow_function       = "⇒"
let g:javascript_conceal_noarg_arrow_function = " "
let g:javascript_conceal_underscore_arrow_function = " "
set conceallevel=1

◈ pangloss/vim-javascript[25]
(注:上述脚本中存在特殊字符,有的情况下显示不正确,请直接用上述链接的内容。)

React
Plug 'mxw/vim-jsx'
let g:jsx_ext_required = 0

◈ mxw/vim-jsx[26]

Prettier
Plug 'prettier/vim-prettier', {
  \ 'do': 'yarn install',
  \ 'for': ['javascript', 'typescript', 'css', 'less', 'scss', 'json', 'graphql'] }
let g:prettier#config#bracket_spacing = 'true'
let g:prettier#config#jsx_bracket_same_line = 'false'
let g:prettier#autoformat = 0
autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql PrettierAsync
# :Prettier

◈ prettier/vim-prettier[27]

总结

最后,呈上参考配置 .vimrc[28],如果关于 vim 有更好的 idea,欢迎在评论中交流。


[1]: https://github.com/junegunn/vim-plug[2]: https://github.com/altercation/vim-colors-solarized[3]: https://github.com/Anthony25/gnome-terminal-colors-solarized[4]: https://github.com/scrooloose/nerdtree[5]: https://github.com/jistr/vim-nerdtree-tabs[6]: https://github.com/Xuyuanp/nerdtree-git-plugin[7]: https://github.com/Valloric/YouCompleteMe[8]: https://github.com/Raimondi/delimitMate[9]: https://github.com/Shougo/deoplete.nvim[10]: https://github.com/w0rp/ale[11]: https://github.com/sheerun/vim-polyglot[12]: https://github.com/kien/ctrlp.vim[13]: https://github.com/ggreer/the_silver_searcher[14]: https://github.com/rking/ag.vim[15]: https://github.com/vim-airline/vim-airline[16]: https://github.com/vim-airline/vim-airline-themes[17]: https://github.com/scrooloose/nerdcommenter[18]: https://github.com/airblade/vim-gitgutter[19]: https://github.com/tpope/vim-fugitive[20]: https://github.com/suan/vim-instant-markdown[21]: https://github.com/mattn/emmet-vim[22]: https://github.com/othree/html5.vim[23]: https://github.com/hail2u/vim-css3-syntax[24]: https://github.com/ap/vim-css-color[25]: https://github.com/pangloss/vim-javascript[26]: https://github.com/mxw/vim-jsx[27]: https://github.com/prettier/vim-prettier[28]: https://github.com/FengShangWuQi/to-vim/blob/master/.vimrc

— 【 THE END 】—

3bec6177abc4e649c0cd4971a654dfa3.png

vim必装插件 系统:Manjaro Vim:Vi IMproved 8.2 (2019 Dec 12, compiled May 28 2021 06:58:52) 安装Vunble Vunble是一个vim插件管理器,可以通过它安装各类插件 需要安装依赖软件:git :sudo pacman -S git 使用git从github上下载Vundle放到vim的bundle路径下: git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/V. 阅读详情

相关推荐

Win系统中GVim8.2配置NerdTree插件

目录 功能说明 NerdTree插件实现效果图: NerdTree安装: NerdTree配置 功能说明 NERDTree是Vim最常用的插件之一,可以在Vim运行时显示目录和文件结构,类似TextMate左侧的文件浏览器,但操作起来更为方便,你可以在手不离开键盘的情况下快速浏览文件,并在文件和文件夹之间进行切换。 NerdTree插件实现效果图: NerdTree安装: 首先是下载插件NERDTree 下载之后, 一定要按照官网的要求。 将解压文件N...

独木舟216的博客 3863

【从入门到进阶】vim基础配置+ 常用插件(NERDTree, cscope, rainbow等)

文章目录前言一、vim基础配置二、常用插件2.1 Vundle2.1.1 Vundle安装2.1.2 Vundle配置2.1.3 安装插件2.1.4 Vundle常用指令2.2 NERDTree2.2.1 NERDTree安装2.2.2 NERDTree配置2.3 NERD Commenter2.3.1 NERD Commenter安装2.3.1 NERD Commenter配置总结 前言 在Windows平台上阅读/写代码常用的工具估计是VS Code或者Source Insight,在Linux平

Young824的博客 1万+

Vim插件NERDTree:提升Linux开发效率的树形文件浏览器

除了Vundle和Pathogen之外,还有多种方式可以安装NERDTree插件,例如使用Neobundle、dein.vim、minpac等。这些插件管理器都有自己的特点和安装流程,但总体上大同小异:Neobundle:通过Git子模块管理插件,并且支持插件的延迟加载。dein.vim:与Vundle类似,但提供了更多的功能,比如自动插件更新。minpac:轻量级的插件管理器,有简洁的API和最小的性能开销。每种安装方式都需要对.vimrc。

weixin_42263617的博客 1445

vim插件:显示树形目录插件NERDTree安装 和 使用

前言 一、下载和配置 NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.com/scrooloose/nerdtree 下载zip安装包 或者使用下面官网源文件安装方法 我的实验环境是centos6.6,其他版本可能有些不同。 安装方法很简单,先把压缩文件下载下来,解压后将plugin目录下的NERD_tree.vim拷贝/.vim/plugin以及doc目录下的NERD_tree.txt拷贝到/.vim/doc. 表示当前用户的目录,我的环境中没有/.vim

weixin_42109053的博客 7982

手把手教你解决uniapp中esbuild版本冲突问题(Mac版专属指南)

本文是针对Mac平台uniapp开发者的专属指南,详细解析了运行项目时常见的`Cannot start service`错误,即esbuild的Host版本与binary版本不匹配问题。文章从错误根源入手,提供了从快速应急处理到彻底根治的完整解决方案,包括手动替换二进制文件、锁定依赖版本、清理缓存及优化工具链配置,旨在帮助开发者高效解决版本冲突,恢复并稳定开发环境。

i0j1k2l3m的博客 459

保姆级教程:在ESXi 8.0上为NVIDIA ConnectX-5/6网卡开启SR-IOV(从BIOS到虚拟机配置)

本文提供在ESXi 8.0上为NVIDIA ConnectX-5/6网卡开启SR-IOV的详细教程,涵盖BIOS设置、固件配置、驱动优化及虚拟机部署。通过SR-IOV技术,显著提升虚拟化环境中的网络性能,适用于高性能计算、AI训练等场景。

weixin_26934905的博客 455

VIM-项目树插件(NERDTree)

本文主要讲述项目树插件NERDTree的使用方法,以及相关配置

zgh 4243

KEIL调试实战:解决‘TRACE HW not present‘错误的完整指南

本文详细解析了KEIL调试中常见的'TRACE HW not present'错误,该错误通常由芯片或ST-LINK调试器不支持高级指令跟踪功能引发。文章提供了从禁用Trace功能到更新固件、检查硬件连接等完整的解决步骤,帮助开发者快速恢复STM32的正常调试,是解决KEIL调试连接问题的实用指南。

weixin_29192365的博客 360

【亲测免费】 探秘NerdTree:一个强大的Vim文件管理系统

探秘NerdTree:一个强大的Vim文件管理系统 【免费下载链接】nerdtree 项目地址: https://gitcode.com/gh_mirrors/ner/nerdtree 项目简介 是一款由V...

gitblog_00002的博客 813

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6444

14、Java 中 TAF 和 FCF 的使用及 Oracle 数据库升级与迁移指南

本文详细介绍了Java中实现高可用性的TAF(透明应用故障转移)和FCF(快速连接故障转移)技术,以及如何将Oracle 9iR2 RAC环境升级到10gR2 RAC,并将数据从OCFS迁移到ASM。通过示例代码和操作步骤,帮助开发者和数据库管理员更好地应对数据库故障和数据迁移问题,提升系统的可用性和性能。

egg99的博客 110

Vim的NerdTree插件

在vundle插件管理的方式,直接在~/.vimrc中的Plugin段落中加入`Plugin "scrooloose/nerdtree "然后重启Vim并输入PluginInstall`,即可完成安装 然后输入: NERDTreeToggle即可打开文件树。当然,默认是关闭的,需要每次都输入命令打开。 还可以设置vim快捷键来映射,在vimrc中加入: map <F3>...

大隐隐于野 4690

学Simulink——基于故障诊断与容错控制的场景实例:并网逆变器在短路故障下的动态响应及恢复策略

本文详细介绍了使用Simulink进行并网逆变器短路故障模拟与保护策略设计的方法。通过构建高精度逆变器模型,模拟IGBT击穿和桥臂直通故障,分析动态响应特性。重点设计了基于Stateflow的微秒级快速保护逻辑,包括过流检测、PWM闭锁和故障报警。同时提出完整的恢复策略流程,涵盖放电、去磁、自检和软启动等关键步骤。仿真结果表明,该方法能在200μs内有效限制短路电流,保护器件安全,并实现系统可靠恢复。文章还探讨了硬件保护协同、多级保护和预测保护等高级策略,为新能源系统的安全运行提供了重要参考。

amy_mhd的博客 143

NERDTree插件安装和使用

如何安装NERDTree插件,该插件显示一个目录树,可以执行一下文件的操作命令,首先添加配置: " 在vim中安装及配置NERDTree插件,放在Plugin 'gmarik/Vundle.vim' 之后 Plugin 'scrooloose/nerdtree' ""-----------------------------------------------NERDTree插件配置开始--...

Lius_1006的博客 1万+

【深度学习基础】多任务学习(Multi-Task Learning)

多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法。在机器学习领域,标准的算法理论是一次学习一个任务,也就是系统的输出为实数的情况。复杂的学习问题先被分解成理论上独立的子问题,然后分别对每个子问题进行学习,最后通过对子问题学习结果的组合建立复杂问题的数学模型。多任务学习是一种联合学习,多个任务并行学习,结果相互影响。一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习。

十二月的猫 1万+

零基础吃透!Python爬虫实战:超详细爬取小红书图文,解析封面+标题+文案全流程

本文为零基础开发者提供小红书图文爬取全流程指南,针对动态加载、严格反爬等核心痛点,从环境配置到数据解析详细讲解。主要内容包括: 核心特性分析:动态加载机制需抓包获取真实接口,严格反爬依赖Cookie验证和请求头伪装 环境准备:Python 3.8-3.10环境,使用requests/beautifulsoup4等库,通过浏览器开发者工具获取有效Cookie 实战步骤: 定位关键API接口(note/list) 配置请求头(含Cookie/User-Agent/Referer) 实现分页爬取和异常处理 解析封

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

GVim配置一个漂亮的NerdTree

GVim配置一个漂亮的NerdTree   GVim使用也有一段时间了,有空写几个简单的教程帮助新手快速上手,定制一个个性化的编辑器把。以下是我的NerdTree效果展示。 NerdTree插件 NerdTree下载安装   如果你安装了插件管理器的化安装就很简单了,如果没有安装使用任何插件管理器,那我建议你还是装一个,因为vim你会用到的插件挺多的,有个管理器很方便。   将这句添加到vim...

大娱乐家 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

vim编辑器中实现左边目录,右边内容布局的方法(vim插件:显示树形目录插件NERDTree安装和使用)

是Vim编辑器的文件系统资源管理器。使用此插件,用户可以直观地浏览复杂的目录层次结构,快速打开文件进行读取或编辑,并执行基本的文件系统操作。它允许轻松浏览文件,并在不离开vim的情况下执行一些基本操作,如创建或移动文件。可以与Git集成:用于显示哪个文件被修改了。

数据知道的博客 2万+

OV9734 DATASHEET,完整规格书

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

深度学习工具包 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")

⚡ NERDTree 目录浏览插件(Vim插件)基本配置和用法

⚡ NERDTree 目录浏览插件(Vim插件)基本配置和用法

aitav0的博客 1204

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NERDTree使用入门

安装 nerd-fonts 并设置终端字体(如 FiraCode Nerd Font)。

bill的博客 887

vim nerdtree 常用命令

VIM 命令模式下:输入:后再上下移动,可获得历史命令 模式: Vim的模式众多,一般有: Normal Mode:普通模式,默认进入vim之后,处于这种模式。 Visual Mode:可视模式,在这种模式下选定一些字符、行、多列。在普通模式下,可以按v进入。 Insert Mode:插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。 Select Mode:在gvi...

心之所向 6969

Mac下NEARDtree的使用

参看连接:http://www.cnblogs.com/lexus/archive/2012/11/04/2753187.html 切换工作台和目录 ctrl + w + h 光标 focus 左侧树形目录 ctrl + w + l 光标 focus 右侧文件显示窗口 ctrl + w + w 光标自动在左右侧窗口切换 ctrl + w + r 移动当前窗口的布局...

weixin_30564901的博客 1558

树形结构查看文件

Vim 中文件目录浏览插件——NERD treelinux2010-12-10 23:57:36阅读427评论0  字号:大中小 订阅在windows中用了source insight, 在linux中使用vim,刚开始很不希望,不过越来越感觉到它的强大的功能。专门为程序员提供的一款编辑器。再加GDB强大的调试功能,使我这么快喜欢上了linux中的开发。vim目录树插件NERD tree 可以可以列出文件目录结构,方便文件打开操作。安装方法如下:1.下载插件文件      http://www.vim.or

小熊波波的专栏 1596

vim文件树插件——NERDTree

基于VimPlug安装方法。在.vimrc中添加。

qq_41729461的博客 802

NERDTree:Vim 中的文件系统浏览器

NERDTree:Vim 中的文件系统浏览器 【免费下载链接】nerdtree A tree explorer plugin for vim. 项目地址: https://gitcode.com/gh_mirrors/ne/ner...

gitblog_00843的博客 920

vim-nerdtree-tabs 使用教程

`vim-nerdtree-tabs` 是一个 Vim 插件,旨在将 NERDTree 文件管理器与 Vim 标签页无缝集成,使得 NERDTree 在所有标签页中保持一致的状态,包括展开/折叠的节点和滚动位置等。这个插件的目标是让 NERDTree 感觉像是一个真正的、独立于标签页的面板,无论在哪个标签页中,NERDTree 的外观和状态都是一致的。 ## 项目快速启动 ### 安装 NER...

gitblog_00492的博客 701
上一篇: 安装redis提示[test] error 2_keepalived + redis 主备容灾部署
下一篇: 键盘延迟测试_2019年最好的游戏键盘推荐
weixin_39936310
博客等级 码龄9年 30粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值