Vi & Vim

使用vi和Vim系列文本编辑器的人员的问答

1
大量运行会使vim运行缓慢吗?
这似乎是一个很愚蠢的问题,但是我有一个Python文件,其中包含一个数字,该数字的长度为一千个数字,并且该文件的运行速度似乎非常缓慢,我不确定是否正在进行某种处理。我不知道。 我按了排队j,有一定的停顿时间约1秒,那真是太痛苦了! 我只在Python文件上有此选项,而在其他文件上则没有。 删除号码后,文件将再次正常工作... 这是电话号码: number=("""7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450""") 它甚至不是数字,而是字符串。

1
如何映射d [count] d?
注意:这不是“ d3fg”命令如何工作的重复项?请在投票关闭前阅读它! 我寻求小删除像大删除一样陷入僵局。我遇到的问题是我不知道如何重新映射类似的命令d3d。实际上,我什至无法理解它们的工作原理,也无法在Vim的帮助下找到它们的任何提法。* d3j很简单:将d操作员应用于3j运动, 3dd也很简单:它dd以3的“ count” 运行命令。 d3d 看起来应该很简单,它将d运算符应用于...,但是什么是3d?这不是一个议案。如果您3d自己输入,Vim会将其视为一个运算符,然后是一个运算符,并耐心等待进一步的输入。 而且您不能将运算符应用于其他运算符。dd在帮助中并未描述为两个运算符的序列。这是一个单独的两键命令。(请参阅dc,它什么都不做。) 对于需要两次击键的命令,计数的位置似乎也不是灵活的:2gj将光标向下移动两行屏幕,但是g2j完全丢弃前两次按键并向下移动一行光标。 那么它是怎样工作的?这只是Vim内部代码中的一种特殊情况吗?有什么办法可以创建d[count]d映射? 编辑:这是一个文本对象吗?:h text-objects不包括在“文本对象选择命令”列表中,但随后它确实包含DD在“从小分组,以大物”删除列表。并d2aw确实删除了光标下的单词和随后的单词。另一方面,c2d什么也不做。 *我确定必须提到它们,但是我找不到。我已经阅读了:help deleting,:help motion.txt并尝试:helpgrep dNd了从1到9的所有N值。

2
:open在vim中做什么?
Vim的文档中有关于:open命令的说法: This command is in Vi, but Vim only simulates it: *:o* *:op* *:open* :[range]o[pen] Works like |:visual|: end Ex mode. {Vi: start editing in open mode} :[range]o[pen] /pattern/ As above, additionally move the cursor to the column where "pattern" matches in the cursor line. Vim does not support open …
18 ex-mode 



2
使用滚轮时滚动屏幕而不是光标
我在终端中使用Vim,因此使用滚轮滚动时使用\e[Aand \e[B语法(其中\esymbols \x1b或escape)。 但是,Vim通过上下移动光标来解释这一点。期望的行为是屏幕被向上或向下移动,就像<C-e>和<C-y>做。 使用滚轮时,如何使Vim移动屏幕,同时将光标保持在同一行?这应该在所有常用模式(插入,正常,视觉选择)下都可以工作。 例如,我已经尝试过:nnoremap <esc>[A <C-e>(用<esc>插入的原义转义字符代替Ctrl+V Esc),但这被证明是徒劳的。 我在带有GNOME的Ubuntu 14.04上使用Vim 7.4.52。


4
如何在Windows上安装64位Vim?
Vim的“ 下载”页面显示不再提供64位版本: Win64的 Vim的32位版本可以在64位Windows上正常运行。有一个64位二进制文​​件,但使用不多,维护已停止。 我想那很好,除了32位Vim不会使用64位Python。has('python')?0。 在Windows上专门安装64位Vim(包括GVim),并提供尽可能多的插件支持,我有哪些选择? Cream的二进制文件显然也是32位的(请参阅参考资料version.txt)。至于Cygwin,我不确定要在其中运行GVim(显然需要DISPLAYset,这表明需要X服务器,这是Cygwin本身复杂性的又一复杂问题)。 我已经安装了MinGW(坦白地说,它已经过时了),所以我可以尝试自己进行编译。 Vim Wikia建议使用https://tuxproject.de/projects/vim/x64/,该指令具有相当不祥的说明: 您需要将适当的DLL文件复制到Vim目录中,以使其起作用。不包括在内。 到我的Vim目录?将https://tuxproject.de的积累不接的Python安装在其他地方? 因此,我想安装64位Vim,以便: 它可以直接使用正式的Python二进制文件(最好是2和3,如果可能的话,以及最新版本)安装了Python,可以直接使用。 很容易保持更新 安装它的要求是最低的(...因此,如果可行,Cygwin的安装应该是最低的)

4
如何在垂直分割中使Vim打开帮助?
我通常在下拉式终端中工作,高度大约为25个字符。因为我比Windows 1更喜欢制表符,所以通常会浪费很多水平空间-大约是终端宽度的一半。 最重要的是,helpheight在打开帮助窗口时,Vim的默认设置为,只留下了几行文件内容: 有没有办法:h利用垂直分割? 我可以: 减少 helpheight 用于<C-W>L手动移动窗口 制作一个地图或自定义命令为我完成以上操作。 有没有更简单的方法? 1当我需要一起查看多个文件时,我确实使用Windows。但是通常我希望每个文件都在其自己的(心理)上下文中。

4
Quickfix对Python追溯的支持
说我有一个带有运行时错误的python脚本: $ cat example.py #! /usr/bin/env python3 a = 1/0 这使: $ python3 example.py Traceback (most recent call last): File "example.py", line 3, in <module> a = 1/0 ZeroDivisionError: division by zero 我希望Vim跳到该文件有问题的行(在本例中为第3行)。我知道Vim可以做到这一点,因为它可以很好地在C中gcc使用:make和quickfix窗口捕获编译时的错误。 当然,我可以使用:set makeprg=python3\ %和来填充Vim的quickfix窗口:make,但是它不会跳到回溯指向的行号。当我查看:copen它时,只需突出显示跟踪的第一行,就无法跳转到相关的行号。 (jessie以防万一,我在Debian上使用Vim 7.4 。) 我的问题是: 我可以配置Vim,使其知道如何从Python追溯中获取相关的行号吗? 我可以修改Python解释器以吐出Vim已经知道如何解析并获取相关行号的错误格式吗?

2
vi,nvi和vim之间是什么关系?
有时在某些Unix上,我找到了一个名为的命令nvi。它是一个类似vi的编辑器,没有很多功能。也许那是旧的叉子vi? 无论如何,哪些vi版本是其他版本的分支,哪些是独立开发的?他们是否有类似于Unix的“家谱”?


1
我可以在Vim中搜索Unicode组合字符吗?
我有一个带有字符的文件ã(小写的+组合波浪号)。 Encoding并且fileencoding都是utf-8。 ga表演 <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (但带有中的实际组合代字号<>),并g8显示 61 + cc 83 搜索/a\%u0303效果很好。 搜索只是\%u0303给出E486模式未找到。 我可以只搜索组合字符而不搜索基本字符吗?


1
转到vim中的最后一个文件
使用可以一次打开许多文本文件 vim *txt 我知道我可以用 :<int>n用来向前移动<int>文件,但是我不知道如何到达上次打开的文件。到目前为止,我已经尝试过:1000n意过冲,但这给出了错误 E165:不能超出最后一个文件 从那里开始,我只求二进制搜索尝试结束,这需要一段时间,即:500n,:250n,125n,... 我怎样才能到达vim中最后打开的文件?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.