场景:
|字符中)分隔的数据.是否有可能使用Vim/Vi将第二个管道中的所有数据删除到整个文件的行尾?有大约150,000行,所以手动这样做只会吸引受虐狂......
例如
更改以下行:
1111|random sized text 12345|more random data la la la|1111|abcde
2222|random sized text abcdefghijk|la la la la|2222|defgh
3333|random sized text|more random data|33333|ijklmnop
Run Code Online (Sandbox Code Playgroud)
至:
1111|random sized text 12345
2222|random sized text abcdefghijk
3333|random sized text
Run Code Online (Sandbox Code Playgroud)
我确信这可以以某种方式完成......我希望.
TIA
更新:我应该提到我在Windows XP上运行它,所以我无法访问一些提到的*nix命令(在Windows上无法识别CUT).
我正在使用Ruby on Rails尝试Vim前几个小时,我很喜欢它.
gf命令很棒,但我想念一些东西.如果光标下的文件尚不存在,则gf返回错误.
是否存在实际创建和打开文件的命令(如果该文件不存在)?或者,创建它的最直接的方法是什么?
关于Vim的一个好处是可以插入一个页面提要符号(Ctrl- L在插入模式下),它委派打印机开始在新页面上打印以下内容.它显示为^L文本.
是否可以将此符号显示为其他内容,例如as
----------------- new page here -----------------
Run Code Online (Sandbox Code Playgroud)
滚动浏览文本页面时更加明显?
也就是说,无需从源代码重建Vim.
我正试图在Play中访问我的应用程序表!框架,但我无法使用控制台找到它.例如,我有两个实体模型:Address和Campus.
我可以创建对象并保存正常,但我希望看到fs或mem DB中的更改,但H2控制台不显示表Address和Campus.我正在使用默认设置登录localhost:9000/@db.
我究竟做错了什么?
提前致谢.
我有一个正则表达式用某个字符串替换某个模式,但我想让它更具动态性.
例如,假设我有这个正则表达式:
%s/hello/-----/g
但是,我会喜欢这样做:
%s/hello/-{5}/g
这意味着用5个破折号替换你好.
有没有办法做到这一点?
最后,我想做这样的事情:
%s/(hello)*/-{\=strlen(\0)}/g
它将hello用短划线替换只有s 的字符串的任何实例,其长度等于匹配字符串的长度.
有没有办法在VI编辑器中将所有行从文件复制到剪贴板.我已经试过*yG,+yG,"+yG并:%y+在SO从以前的帖子,但没有在OS X工程
我知道我可以使用AWK,但我在Windows机器上.我正在为可能没有AWK的其他人提供功能.我也知道我可以写一个C程序,但我不想为我正在制作的一个小Vim实用程序创建维护和编译.
原始文件可能是
THE DAY WAS LONG
THE WAY WAS FAST
Run Code Online (Sandbox Code Playgroud)
它会成为
TT
HH
EE
DW
AA
YY
WW
AA
SS
LF
OA
NS
GT
Run Code Online (Sandbox Code Playgroud)
更新:高尔夫规则适用于选择正确的答案.
更新:Python粉丝应该看看Duffy先生的答案如下.
vi/vim可以做paste -d ' '其他:r !paste -d ' '吗?
如果有的话,调用的本机vi/vim命令是什么?
使用Vim我真的是视觉模式的粉丝,它允许你在列之前插入文本.
在箭头后插入一些间距,
> one
> two
> three
Run Code Online (Sandbox Code Playgroud)
可以通过<Ctrl-V>jjI <Esc>以下方式完成
> one
> two
> three
Run Code Online (Sandbox Code Playgroud)
<Ctrl-V>,jj,I__,<Esc>现在我有一个需要格式化的文本文件.这就是它的样子:
start() -- xxx
initialize() -- xxx
go() -- xxx
Run Code Online (Sandbox Code Playgroud)
现在我想对齐此部分文本,将其排列成如下列:
start() -- xxx
initialize() -- xxx
go() -- xxx
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不能在每行中插入不同数量的缩进,只是缩进固定数量的空格/制表符是不够的.如何在所有缩进文本必须在同一列对齐的情况下进行缩进?
编辑:我只想出一个相当冗长和笨拙的方法:
\--,20i <Esc>,d|15,......但是非常难看!
说我有以下文件
<block>
<foo val="bar"/>
<foo val="bar"/>
</block>
<block>
<foo val="bar"/>
<foo val="bar"/>
</block>
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做
<block>
<foo val="bar1"/>
<foo val="bar"/>
</block>
<block>
<foo val="bar1"/>
<foo val="bar"/>
</block>
Run Code Online (Sandbox Code Playgroud)
有一件事我试图做的是记录一个宏用:%s/bar/bar1/gc,按y与n各一次,然后尝试编辑宏.由于某种原因,我无法编辑宏.:(
vim ×9
regex ×2
replace ×2
editor ×1
folding ×1
formatting ×1
h2 ×1
macos ×1
paste ×1
python ×1
text ×1
text-files ×1
text-parsing ×1
vi ×1