Vim进阶

2023-10-29

Vim实用技术,第1部分:实用技巧 http://www.ibm.com/developerworks/cn/linux/l-tip-vim1/index.html

Vim实用技术,第2部分:常用插件 http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html

 Vim 实用技术,第 3 部分: 定制Vim: http://www.ibm.com/developerworks/cn/linux/l-tip-vim3/index.html

http://blog.csdn.net/fangjuntan/article/details/6153840

http://blog.csdn.net/wooin/archive/2008/08/28/2844868.aspx

http://www.cnblogs.com/taskiller/archive/2012/04/06/2434532.html 简单搭建vim看代码

http://www.vim.org/scripts/script.php?script_id=3647 把许多工具都集成在一起了,成了一个IDE了

http://blog.csdn.net/yangyang_gnu/article/details/6642271 组建buld链

http://easwy.com/blog/archives/vim-resources-collection/ 这个是easyw整理的vim资源,其中7个习惯很好!

1. 折叠方式 
可用选项 'foldmethod' 来设定折叠方式:set fdm=*****

有 6 种方法来选定折叠:
          manual           手工定义折叠
          indent             更多的缩进表示更高级别的折叠
          expr                用表达式来定义折叠
          syntax             用语法高亮来定义折叠
          diff                  对没有更改的文本进行折叠
          marker            对文中的标志折叠

注意,每一种折叠方式不兼容,如不能即用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

使用时,用:set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。
要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。

2. 折叠命令
选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:
如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
在可折叠处(大括号中间):
zc      折叠
zC     对所在范围内所有嵌套的折叠点进行折叠 
zo      展开折叠
zO     对所在范围内所有嵌套的折叠点展开
[z       到当前打开的折叠的开始处。
]z       到当前打开的折叠的末尾处。
zj       向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk      向上移动到前一折叠的结束处。关闭的折叠也被计入。

当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)
我们可以使用下面的命令来创建和删除折叠:
zf      创建折叠,比如在marker方式下:
                   zf56G,创建从当前行起到56行的代码折叠;
                   10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。
                   10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。
                   在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
zd      删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
zD     循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
          仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
zE     除去 (Eliminate) 窗口里“所有”的折叠。
          仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

注意:

1. ubuntu10.04时,安装vim-gnome,这个事vim完全版

2. 使用代码折叠式,设置折叠方式使用命令为 :set fdm=indent(or xxxxx),这个有冒号

                                   使用折叠命令时,为光标移动到指定位置,执行命令 zc(or xxxx),这个没有冒号

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim进阶 的相关文章

  • 移动相邻选项卡以进行拆分?

    有没有一种简单的方法可以将 Vim 中的相邻选项卡作为拆分移动到当前窗口 While looking around I reached a mailing list discussion where someone said it s th
  • 如何在 vim 中覆盖 ~/.vim 和 ~/.vimrc 路径(但不能覆盖其他路径)?

    假设我有一个所有 vim 配置的 tarball 通常在 vim 中的所有内容 插件 自动加载 颜色 所有这些东西 和一个 vimrc 文件 我将其提取到某个目录中 所以在我所在的目录 PWD 中 有一个 vim 文件夹和一个 vimrc
  • Linux/Ubuntu 目录位置 ~/.vim/syntax/

    文件夹的默认位置在哪里 vim syntax 在Linux系统上 我正在尝试添加一个 Python 插件 您正在寻找 runtimepath 选项 该文档非常详细 使用 help runtimepath 但我会尝试在这里总结一下 The 运
  • 在 Archlinux 上使用 Vim 作为 Haskell 的 IDE 目前情况如何?

    如果可行的话 我的目标是通过 YouCompleteMe 在 Vim 中完成 Haskell 的命令 在这方面 正如您在下面看到的 我还没有找到关于如何让它发挥作用的共识 相关评论的最新评论YouCompleteMe 上的问题 https
  • 在 Vim 中平滑滚动的最佳方法是什么?

    Vim 中的主要滚动命令是 Ctrl B and Ctrl F as well as PageUp and PageDown scroll by full page Ctrl U and Ctrl D scroll half a page
  • vim e518:未知选项:

    我在 UNIX 系统上有一个文本文件 以下文本文件内容会产生问题 good ok line vi bad line ok ok line 所以如果我运行 vim test txt 我收到以下错误 test txt 3L 39C Error
  • Vim:领导不工作

    当尝试使用时vim latexsuite的映射 使用的是Leader不工作 nmap n
  • VIM:可用的快捷方式?

    我在 vim 中使用了许多快捷方式 其他快捷方式由插件使用 有时我想为新命令添加快捷方式 但事后请注意该快捷方式已被使用 有没有办法查看 VIM 中所有可用快捷键的列表 所有 ctrl shift alt 快捷键 Type help ind
  • gvim中的鼠标输入

    标准鼠标输入可以在 vim 中自定义吗 在我的例子中是 vim 插件也是可以接受的选择 我特别感兴趣的是 覆盖 双击某个单词 这样 gvim 就不仅仅是突出显示该单词 而是进行搜索 从而突出显示文件中该单词的所有实例 我在其他编辑器中看到过
  • 在 Mac OS X 中将 Caps Lock 用作 Esc

    How do I make Caps Lock work like Esc in Mac OS X Edit As described in this answer https stackoverflow com a 40254864 66
  • 使用 Vim 作为 HTML 编辑器

    您知道 Notepad 如何具有此功能 当您单击标签 例如 时 它也会自动突出显示结束标签 它叫什么 如何调整 Vim 使其也具有此功能 还有其他方法可以将 Vim 变成强大且高效的 HTML 编辑器吗 我在 vim 中完成所有 HTML
  • Vi/vim - 从末尾行删除,包括最后一个字符

    我想做类似这个问题的事情VI VIM 删除 更改从右到左 https stackoverflow com q 9154212 301527即从行尾删除到该行中 的最后一个实例 这可以使用dT 将光标放置在该行的末尾 然而 这个命令和其他这样
  • Vim 与 tmux 相得益彰

    NERDTree 在 tmux 会话中出现问题 如图所示 当窗口被分割时也存在同样的问题 但现在我正在使用电源线 https github com Lokaltog powerline这次 Vim 状态在 tmux 中变得混乱 在图中看到状
  • Vim ":source %" 命令导致错误 (E499)

    Stack Overflow vim 用户大家好 我最近发现自己花了相当多的时间在学校的计算机科学实验室编写代码 我在无数的linux系统上配置过vim 从来没有遇到过这个错误 E499 Empty file name for or onl
  • VIM语法折叠:禁用折叠多行注释

    我在 vim 7 3 中使用 语法 折叠方法 在 vimrc中 set foldmethod syntax 当我打开 Test cpp 时 包含 A function with a multi line comment This takes
  • Vim:垂直选项卡列表可以吗?

    是否可以让 vim 的选项卡列表垂直显示在编辑器的左侧 这确实很有帮助 但我还没有找到任何可以做到这一点的插件 我对谷歌很烂吗 我同意兰迪关于选项卡使用的观点 但前段时间我也在寻找在 gvim 中添加垂直制表符的可能性 为此 您必须修改源
  • Vim:设置 ctag 很困难。子目录中的源代码在项目根目录中看不到标签文件

    我今天试图在 Vim 上设置 丰富的 ctags 但很难让它正常工作 我在命令行上使用以下命令生成 ctags 文件 cd myproj ctags R 这会将标签文件放在 myproj 根目录中 然而 当我处理位于根目录中的源代码时 Vi
  • 通过列表字符仅显示前导空格的“空格”字符

    Vim 中是否可以有我的编辑器 编辑时 c and h文件 显示通过listchars 一个特殊字符 仅用于leading空格字符 我发现一个单独的帖子指出 从版本 7 4 开始 Vim 现在支持通过以下方式突出显示所有空格字符listch
  • C# - 使用 Vim 作为主编辑器 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经喝了酷乐了 Vim 优雅美丽 我必须学习如何使用它并配置它以拥有一个出色的编译器 这是最好的学习方式 问题是 我从哪里开始 是否有一个很好的教程
  • vim 按语法高亮类型搜索

    我正在将 i18n 添加到现有项目 Web 应用程序 这涉及到用对 i18n 库的调用来替换静态文本的每一位 如果能够搜索该文本 而不是依靠语法突出显示来直观地识别它 将会很方便 在 vim 中 是否可以在文件中搜索特定突出显示类型的出现

随机推荐

  • Sum It Up HDU - 1258【DFS】

    Given a specified total t and a list of n integers find all distinct sums using numbers from the list that add up to t F
  • 十年资深建模师教你如何用zbrush在圆柱或曲面上雕刻花纹

    在圆柱上面或者是曲面比较大的模型上面制作花纹 如果我们直接使用笔刷雕或是用alpha拉出来 可能效果不是很好 对于这种情况 我们需要结合UV制作这样的图案 如果想更多了解游戏建模可以加入我们的游戏建模交流团1046 777 540 只有数字
  • 六、深入理解JDK1.8中HashMap哈希冲突解决方案

    导读 前面文章一 深入理解 Java集合初篇 中我们对Java的集合体系进行一个简单的分析介绍 上两篇文章二 Jdk1 7和1 8中HashMap数据结构及源码分析 三 JDK1 7和1 8HashMap数据结构及源码分析 续 中我们分别对
  • Java基础之【使用迭代器删除List中的元素】

    直接看代码以及代码中注释 iterator的remove跟list的remove区别是 迭代器会在remove后进行expectedModCount modCount操作 这样就会避免 ConcurrentModificationExcep
  • python+selenium尝试处理滑块验证

    效果如图 处理思路 1 打开滑动验证页面 这个用selenium一步一步走过去 2 将滑动验证码的整个图片保存下来 3 对图片的像素点进行分析 发现拼图处像素特征如下 1 阴影起点处rgb的第一个值为0 2 阴影处的rgb三个值相加大部分小
  • 【机器学习基础 2】matplotlib库

    目录 一 什么是matplotlib库 二 基本用法 1 绘制简单的线图 plot 函数 2 绘制散点图 scatter 函数 3 绘制条形图 bar 函数 4 绘制饼图 pie 函数 三 重要用法 1 设置样式 2 添加标签 3 设置坐标
  • C++动态库使用

    个人博客地址 https cxx001 gitee io 前言 Windows与Linux下面的动态链接库区别 1 文件后缀不同 Linux动态库的后缀是 so 文件 而window则是 dll 文件 2 文件格式不同 a Linux下是E
  • GT911电容触摸屏使用

    注 转载于https blog csdn net qlexcel article details 99696108 一 介绍与硬件连接 GT911 GT928 GT9147都属于GT9系列非单层多点触控芯片 他们支持的触控点数不同 GT92
  • 什么事IPC(Inter-Process Communication,进程间通信)

    进程间通信IPC 也就是Inter Process Communication的缩写 首先我们明白一个进程其实就是一个狭义上的程序 一个服务器也就是一个进程 比如客户端和服务器的连接就是两个进程在通信 只是这两个进程并不在同一台计算机上 它
  • wsl set default version: 请启用虚拟机平台 windows 功能并确保在 bios 中启用虚拟化

    前段时间电脑偶然间恢复了出厂设置 之前安装的docker之类的东西都得重来了 既然要安装docker 肯定得用到WSL 于是就想要先把WSL的版本切换到2 在运行了如下命令后出现了这么个问题 PS C Users me gt wsl set
  • ​广州地区高校福利来啦!6月29日华为云开发者沙龙门票限时免费领取!

    6月29日华为云开发者沙龙广州站开启报名 华为专家现场指导实操演示并有精品图书相送 了解行业趋势进行技术储备 高校教师 学生免费参会 报名地址 https click hm baidu com clk 7a57cac1ed530949ab0
  • 【Redis 6】缓存穿透、缓存雪崩、缓存击穿(附解决方案、代码)

    各位小伙伴们大家好 欢迎来到这个小扎扎的Redis 6专栏 在这个系列专栏中我对B站黑马的Redis教程进行一个总结 鉴于 看到就是学到 学到就是赚到 精神 这波依然是血赚 O Redis知识点速览 缓存穿透 原理以及解决方案 缓存空对象代
  • Redis入门

    1 前言 1 1 什么是Redis Redis是一个基于内存的key value结构数据库 Redis 是互联网技术领域使用最为广泛的存储中间件 它是 Remote Dictionary Service 的首字母缩写 也就是 远程字典服务
  • 断言(Assert)的用法

    一 概念 编写代码时 我们总是会做出一些假设 断言就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级形式 使用断言可以创建更稳定 品质更好且不易于出错的代码 当需要在一个值为FALSE时中断当前操作的话 可以使用断言 单元测试
  • 二进制间距

    二进制间距 给定一个正整数 n 找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 如果不存在两个相邻的 1 返回 0 如果只有 0 将两个 1 分隔开 可能不存在 0 则认为这两个 1 彼此 相邻 两个 1 之间的距离是它们的
  • MySQL创建S,P,J,SPJ表,以及SQL语句

    MySQL创建S P J SPJ表 CREATE TABLE S SNO char 9 primary key SNAME char 9 STATUS char 9 CITY char 9 CREATE TABLE P PNO char 9
  • Linux休眠,挂起,待机,关机的区别及相关命令

    转 http blog 163 com kukwkukw 126 blog static 97095900201410672425693 体眠是一种更加省电的模式 它将内存中的数据保存于硬盘中 所有设备都停止工作 当再次使用时需按开关机键
  • 一文读懂深度学习框架下的目标检测(附数据集)

    从简单的图像分类到3D位置估算 在机器视觉领域里从来都不乏有趣的问题 其中我们最感兴趣的问题之一就是目标检测 如同其他的机器视觉问题一样 目标检测目前为止还没有公认最好的解决方法 在了解目标检测之前 让我们先快速地了解一下这个领域里普遍存在
  • 整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩

    1 大数据的文件读取 利用生成器generator 迭代器进行迭代遍历 for line in file 2 迭代器和生成器的区别 答 1 迭代器是一个更抽象的概念 任何对象 如果它的类有next方法和iter方法返回自己本身 对于stri
  • Vim进阶

    Vim实用技术 第1部分 实用技巧 http www ibm com developerworks cn linux l tip vim1 index html Vim实用技术 第2部分 常用插件 http www ibm com deve