小编ib.*_*ib.的帖子

如何创建VIM或Vi命令以删除文本文件中每一行的特定字符后的所有文本?

场景:

  • 我有一个文本文件,其中包含管道(如|字符中)分隔的数据.
  • 管道分隔字段中的每个数据字段可以是可变长度的,因此计数字符将不起作用(或使用某种子字符串函数......如果它甚至存在于Vim中).

是否有可能使用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).

regex vi vim replace

15
推荐指数
3
解决办法
8116
查看次数

创建并打开以编辑光标下不存在的文件

我正在使用Ruby on Rails尝试Vim前几个小时,我很喜欢它.

gf命令很棒,但我想念一些东西.如果光标下的文件尚不存在,则gf返回错误.

是否存在实际创建和打开文件的命令(如果该文件不存在)?或者,创建它的最直接的方法是什么?

vim

15
推荐指数
1
解决办法
2520
查看次数

页面提要符号显示在Vim中

关于Vim的一个好处是可以插入一个页面提要符号(Ctrl- L在插入模式下),它委派打印机开始在新页面上打印以下内容.它显示为^L文本.

是否可以将此符号显示为其他内容,例如as

----------------- new page here -----------------  
Run Code Online (Sandbox Code Playgroud)

滚动浏览文本页面时更加明显?

也就是说,无需从源代码重建Vim.

vim folding

14
推荐指数
1
解决办法
1383
查看次数

使用H2控制台访问mem或fs数据库表

我正试图在Play中访问我的应用程序表!框架,但我无法使用控制台找到它.例如,我有两个实体模型:AddressCampus.

我可以创建对象并保存正常,但我希望看到fs或mem DB中的更改,但H2控制台不显示表AddressCampus.我正在使用默认设置登录localhost:9000/@db.

我究竟做错了什么?

提前致谢.

h2 playframework

14
推荐指数
2
解决办法
8449
查看次数

Vim正则表达式替换为n个字符

我有一个正则表达式用某个字符串替换某个模式,但我想让它更具动态性.

例如,假设我有这个正则表达式:

%s/hello/-----/g

但是,我会喜欢这样做:

%s/hello/-{5}/g

这意味着用5个破折号替换你好.

有没有办法做到这一点?

最后,我想做这样的事情:

%s/(hello)*/-{\=strlen(\0)}/g

它将hello用短划线替换只有s 的字符串的任何实例,其长度等于匹配字符串的长度.

regex vim

14
推荐指数
2
解决办法
3000
查看次数

VI编辑器:将整个文件拖到剪贴板(特定于OS X)

有没有办法在VI编辑器中将所有行从文件复制到剪贴板.我已经试过*yG,+yG,"+yG:%y+在SO从以前的帖子,但没有在OS X工程

macos vim

14
推荐指数
1
解决办法
8810
查看次数

我可以在Vim中转置文件吗?

我知道我可以使用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先生的答案如下.

python vim text-parsing text-files

13
推荐指数
3
解决办法
2861
查看次数

Vim粘贴-d''开箱即用的行为?

vi/vim可以做paste -d ' '其他:r !paste -d ' '吗?

如果有的话,调用的本机vi/vim命令是什么?

vim paste

13
推荐指数
1
解决办法
2163
查看次数

在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)

我遇到的问题是我不能在每行中插入不同数量的缩进,只是缩进固定数量的空格/制表符是不够的.如何在所有缩进文本必须在同一列对齐的情况下进行缩进?


编辑:我只想出一个相当冗长和笨拙的方法:

  • 找到要缩进的字符串位置:\--,
  • 插入N(我们20说吧)之前,空格:20i <Esc>,
  • 删除这些空间的一部分返回到某列(假设15) d|15,
  • 将这些步骤保存为宏并根据需要重复宏,

......但是非常难看!

vim formatting text

12
推荐指数
1
解决办法
6489
查看次数

在Vim中,我如何搜索和替换其他所有匹配?

说我有以下文件

<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,按yn各一次,然后尝试编辑宏.由于某种原因,我无法编辑宏.:(

vim replace editor

12
推荐指数
2
解决办法
5079
查看次数

标签 统计

vim ×9

regex ×2

replace ×2

editor ×1

folding ×1

formatting ×1

h2 ×1

macos ×1

paste ×1

playframework ×1

python ×1

text ×1

text-files ×1

text-parsing ×1

vi ×1