小编ThG*_*ThG的帖子

Vim Regex:如何搜索A和B NOT C

我有很多行包含美国总统卡特,布什,克林顿,奥巴马的名字.一些包含其中一个名称,一些包含2个,一些包含3个,其中一些包含所有4个(以任何顺序排列).

我知道如何寻找卡特和克林顿以及奥巴马 - >

:g/.*Carter\&.*Clinton\&.*Obama/p
Run Code Online (Sandbox Code Playgroud)

我知道如何寻找卡特和(克林顿或布什) - >

:g/.*Carter\&\(.*Clinton\|.*Bush\)/p
Run Code Online (Sandbox Code Playgroud)

(肯定有更好的方法)

但我无法想象如何搜索(我看了相关的问题),例如,布什和克林顿不卡特,甚至更少搜索,例如,布什和克林顿不(卡特奥巴马).

regex vim

49
推荐指数
2
解决办法
3万
查看次数

如何使用不同颜色的不同字段打印awk的结果?

该文件有3个字段.我想要例如绿色的前两个字段,白色的第三个字段(NB:黑色背景),所以我试过:

awk '{print "\033[0;32m"$1"\033[0m", "\033[0;32m"$2"\033[0m", "\033[0;37m"$3"\033[0m"} }' chrono.txt
Run Code Online (Sandbox Code Playgroud)

一切都是绿色的......

我该如何进行(如果可能的话)?

awk gawk

15
推荐指数
2
解决办法
2万
查看次数

如何在SQLite中自动执行INSERT INTO过程?

我用SQLite创建了一个数据库 - tasks.db.这个数据库有一个表 - 待办事项 - 包含以下字段:id(pk),date(NOW with trigger),项目,duedate,status,description

要从命令行在SQLite中输入新行,我必须写:

sqlite3 tasks.db "insert into todo (project,duedate,status,description) values (2010-11_18,'Home','Urgent','Call the plumber');"
Run Code Online (Sandbox Code Playgroud)

这是一个相当长且容易出错的过程.所以我决定使用shell脚本(bsq)"自动化"它,运行如下:

#!/bin/sh
echo "What project ?"
read Proj
echo "For when ?"
read Due
echo "What status ?"
read Stat
echo "What to do ?"
read Descr

echo sqlite3 tasks.db "insert into todo (project,duedate,status,description) values ('$Proj',$Due,'$Stat','$Descr');"
Run Code Online (Sandbox Code Playgroud)

......当我跑步时没有任何反应:sh bsq.然后出现序列然后将我带回提示符.我哪里出错或者我省略了什么(输入?但我该怎么办?)?

谢谢你的帮助

ThG的长度

sqlite bash scripting

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

Vim中折叠和子折叠的不同颜色

是否可以为折叠和子折叠设置不同的颜色,例如:

  • 折叠级别1的灰色背景上的蓝色前景(默认)
  • 黑暗的黄色背景上的黑色前景折叠级别2
  • 等...(虽然进一步下降似乎有点过分)

vim folding

11
推荐指数
2
解决办法
4643
查看次数

Vim:如何自动编号段落以及如何参考这个编号?

让我们说我有这个文本(段落用空行分隔 - 数字3和7,这里):

This is my first paragraph line 1
This is my first paragraph line 2

This is my second paragraph line 4
This is my second paragraph line 5
This is my second paragraph line 6

This is my third paragraph line 8
This is my third paragraph line 9
Run Code Online (Sandbox Code Playgroud)

问题1:如何自动编号这些段落(我成功了,但是使用了一个笨拙的宏),以获得这个结果:

1   This is my first paragraph line 1
    This is my first paragraph line 2

2   This is my second paragraph line 4
    This is my …
Run Code Online (Sandbox Code Playgroud)

vim

8
推荐指数
1
解决办法
720
查看次数

如何删除模式不存在的所有段落?

我记录了我参加的会议的日志.

每次会议:

  • 由空行分隔( - >每个会议是段落)
  • 由于表达而折叠
  • 包含一行与相应的标签:ACME,GMBH,SARL等...

当我想要审查我所有的会议时,例如ACME,

  • 我创建一个临时缓冲区(:%y,然后是:tabnew,然后是粘贴)
  • 我希望消除ACME没有想到的所有段落.

这是我遇到问题的地方.

我知道如何按行搜索/删除:

:v/ACME/d
Run Code Online (Sandbox Code Playgroud)

但是我该如何逐段完成(以便将整个段落保留在ACME数据中,而不是唯一的标记行)?

注意:ACME的模式可以在这些段落中不止一次.

vim

6
推荐指数
1
解决办法
352
查看次数

在Vim中,如何仅在模式出现一次时才匹配模式?

我有以下文字:

Line 1 : orange blackberry orange coconut
Line 2 : orange
Line 3 : blackberry coconut blackberry
Line 4 : pear orange apricot
Run Code Online (Sandbox Code Playgroud)

我想找到“橙色”仅出现一次的行,即第2和4行(对于“ blackberry”,它仅是第1行)。

我尝试使用否定的超前构造(橙色,橙色,但未跟随),但失败了……

/orange\(.*orange\)\@!
Run Code Online (Sandbox Code Playgroud)

给了我第2行和第4行,但正如我应该预见的那样,给了我第1行中第二个橙色实例。

我应该如何进行?

提前致谢

regex vim

6
推荐指数
1
解决办法
52
查看次数

避免消息" - - 从.sqliterc加载资源"

小问题,但令人恼火:有没有办法避免每次进行查询时出现以下消息:

- 从/Users/ThG/.sqliterc加载资源

sqlite

5
推荐指数
3
解决办法
2321
查看次数

Vim:如何索引纯文本文件?

是否可以在 vim 中索引纯文本文件(一本书),例如:

1. This line contains the words : London, Berlin, Paris
2. In this line, I write about : New-York, London, Berlin
...
100. And, to conclude, my last comments about : New-York, Paris
Run Code Online (Sandbox Code Playgroud)

并有这个结果索引:

Berlin : 1
London : 1, 2
New-York : 2, ..., 100
Paris : 1, ..., 100
Run Code Online (Sandbox Code Playgroud)

并且,如果可能的话,标记方法是什么?我读过 ctags,但它似乎专门针对特定语言(说实话,对于我的需求来说有点矫枉过正)

vim ctags

5
推荐指数
1
解决办法
1005
查看次数

Tabular.vim:如何对齐放在Words开头的2个不同分隔符的第一次出现?

我已经安装了Tabular插件,只要不涉及复杂的正则表达式,它对我来说非常有效.

但我有这个清单:

one @abc @rstuvw &foo  
three @defg &bar 
four @mn @opq &kludge &hack  
twelve @hijkl &baz &quux
Run Code Online (Sandbox Code Playgroud)

我希望以这种方式对齐(在@ ...首先,然后在&...):

one    @abc @rstuvw &foo  
three  @defg        &bar 
four   @mn @opq     &kludge &hack  
twelve @hijkl       &baz &quux
Run Code Online (Sandbox Code Playgroud)

这意味着我同时有3个问题:

  • 在第一次出现时对齐
  • 2个不同的分隔符(@和&)
  • 这些不是真正的分隔符,而是在单词开头的"特殊字符"

这远远超出了我对正则表达式和Tabular.vim的理解

我该怎么办?

vim tabular

5
推荐指数
1
解决办法
1249
查看次数

标签 统计

vim ×7

regex ×2

sqlite ×2

awk ×1

bash ×1

ctags ×1

folding ×1

gawk ×1

scripting ×1

tabular ×1