我正在做关于vi/Vim的演讲.我想强调一下他们对新编辑器的一些功能,特别是Sublime Text.可以通过添加插件来平衡许多差异,但这是我目前的开箱即用功能列表,似乎是vi/Vim独有的:
我还有其他独特的内置功能吗?
我正在阅读关于unicode的这篇文章 - http://www.linuxjournal.com/content/unicode
为了更好地理解这个概念,在VIM中我保存了unicode字符'ഒ'U+ 0D12.当我切换到十六进制模式(使用:%!xxd命令)时,我看到以下内容:
0000000:e0b4 920a ....
\ 0a是结尾\n.但其他十六进制值对我没有任何意义.任何人都可以对此有所了解吗?
例如,要使用单个命令转换foo(a,b,c)为foo(ax,bx,cx)您需要以下内容:
:s/[abc]/MATCHED_CHARACTERx/g
Run Code Online (Sandbox Code Playgroud)
这种替换的正确语法是什么?
我有一个vimscript,它从vim命令行传递的字符串中获取匹配列表.字符串的一部分有一个类似的模式some-word.以下输出总结了问题:
echo matchlist("some-word", escape('(\w|-)+', '()+|'))
" => ['some-word', 'd', '', '', '', '', '', '', '', '']
据我所知,这'd'是由于捕获组.我尝试使用[\w|-]但不会工作.我发现避免这种情况的一种方法是使用非捕获组\%(\w|-),但似乎添加了更多代码.vim没有像[]perl 那样的解决方案吗?
我刚刚发现有些人倾向于将其重新映射:到;Vim中(因为;它仅用于搜索,并且:一直使用,而不是一直按下Shift很棒).
编辑(忘了显示我做了什么):
nnoremap ; :
nnoremap : ;
Run Code Online (Sandbox Code Playgroud)
我试过了,我喜欢它.但是,它确实带来了价格.这有点打破我的配置,例如:
map <leader>G mG:Git!
Run Code Online (Sandbox Code Playgroud)
像上面看到的命令不再有效.
所以我的问题是,对于那些重新映射分号的人来说,解决这个问题的方法是什么?我应该只通过xmodmap 重新映射:并;在系统级别上吗?
决定: 最终,为了保持一致性,我决定在系统级重新映射冒号和分号.
在VIM中,我如何删除txt文件的最后一列.
1 2 3 4
x x x x
x x x x
Run Code Online (Sandbox Code Playgroud)
我想删除第4列
Result:
1 2 3
x x x
x x x
Run Code Online (Sandbox Code Playgroud)
谢谢
当我在rails应用程序文件夹中保存文件冻结约5秒时会出现什么问题?如何调查此问题?
VIMRC:https://gist.github.com/4632cbcfc655899c934f
我找到了这个很酷的exrc文件来制作F-Keys的东西,例如map #2 :set number,它只是放在那个ex命令中,并让我按回车确认.然而,我做了一个关闭(map #4 :q),如果它自动添加一个输入我想它,所以它只是关闭,我不必先按Enter键.然后我会点击它关闭.
如何添加输入字符?
有没有办法指定在任何给定方向上删除多少个单词?我知道有一种方法可以指定删除多少个字母,但是单词呢?
就像我希望这些方面的东西:
2X <DIRECTION>
Run Code Online (Sandbox Code Playgroud)
所以我可以采取这样的方式:
inoremap <F14> <ESC>:call Smode('hlon')<CR>|
Run Code Online (Sandbox Code Playgroud)
把它变成这个:
inoremap <F14> <ESC><CR>|
Run Code Online (Sandbox Code Playgroud) 我正在编译我的c ++程序的问题,它是一个递归的正确解析器,这些是规则:
slist :: = stmt slist | stmt
stmt ::= decl | assign | print
decl ::= INT ID SC | FLOAT ID SC
print ::= PRINT expr SC
assign ::= ID EQUAL expr SC
expr ::=term PLUS expr|term MINUS expr| term
term ::= factor STAR term|factor DIV term| factor MOD term| factor
factor ::= primary STARSTAR factor | primary
primary ::= INTCONST | FLOATCONST | ID |
LPAREN expr RPAREN
Run Code Online (Sandbox Code Playgroud)
我仍然是C++的新手,所以我不确定我是否搞砸了什么,或者它是我的编译器.我在基因组/ ubuntu终端环境中使用VIM,这些是我在编译时遇到的错误,它看起来像一个丢失的包含头文件,但我100%确定我已经包含了头文件:
我的代码:
#include <iostream>
#include <string>
using …Run Code Online (Sandbox Code Playgroud)