小编Ken*_*ent的帖子

是否有可能grep Vim的quickfix?

所以,假设我使用ag.vim通过文件搜索"禁用".它在quickfix窗口中返回一些结果:

1 first_file.rb|1 col 1| disabled something something
2 second_file.rb|1 col 2| disabled another something
Run Code Online (Sandbox Code Playgroud)

是否可以选择quickfix结果作为输入,grep通过它并在新的quickfix中打开结果?所以,如果我要输入:quickfix_grep first_file,新的quickfix只会弹出一个条目:

1 first_file.rb|1 col 1| disabled something something
Run Code Online (Sandbox Code Playgroud)

vim grep

11
推荐指数
3
解决办法
1647
查看次数

stat命令如何计算文件的块?

我想知道stat命令如何计算文件的块.我读了 这篇文章,它说:

值st_blocks以512字节块的形式给出文件的大小.(这可能小于st_size/512,例如,当文件有漏洞时.)值st_blksize为高效的文件系统I/O提供"首选"块大小.(以较小的块写入文件可能会导致读取 - 修改 - 重写效率低下.)

但我无法在测试中验证它.

我的文件系统是ext3.

dumpe2fs -h/dev/sda3显示:

...
First block: 0
Block size: 4096
Fragment size: 4096
...
Run Code Online (Sandbox Code Playgroud)

然后我跑了

kent@KentT60:~/Desktop$ stat Email
File: `Email'
Size: 965 Blocks: 8 IO Block: 4096 regular file
Device: 80ah/2058d Inode: 746095 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ kent) Gid: ( 1000/ kent)
Access: 2009-08-11 21:36:36.000000000 +0200
Modify: 2009-08-11 21:36:35.000000000 +0200
Change: 2009-08-11 21:36:35.000000000 +0200
Run Code Online (Sandbox Code Playgroud)

如果这里的块意味着:有多少512字节块,那么数字应该是2而不是8.我认为,来自文件系统(io块)的块大小是4k.如果fs将获得文件Email,它将从磁盘(8 x 512字节块)获取最小4k,这意味着965/512 + 6 = 8.我不确定猜测是否正确.

另一个测试:

kent@KentT60:~/Desktop$ stat wxPython-demo-2.8.10.1.tar.bz2
File: `wxPython-demo-2.8.10.1.tar.bz2'
Size: …
Run Code Online (Sandbox Code Playgroud)

linux filesystems

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

bash方法从csv文件中删除最后4列

有没有办法使用bash删除某些输入CSV文件的最后四列?最后四列可以包含从一行到另一行的长度不同的字段,因此仅从每行的末尾删除一定数量的字符是不够的.

csv bash awk cut sed

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

awk中的多个字段分隔符

我有这个字符串

-foo {{0.000 0.000} {648.0 0.000} {648.0 1980.0} {0.000 1980.0} {0.000 0.000}}
Run Code Online (Sandbox Code Playgroud)

我想将它分成数字并迭代它们,谢谢尝试使用字段分隔符,但没有成功我怎么能用awk做到这一点?

regex string awk

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

如何将参数从:命令传递给函数?

我想写一个命令,这个命令会有这样的格式:

[range]MyCMD[!] [count] [oneArg] [flags]
Run Code Online (Sandbox Code Playgroud)

要么

[range]MyCMD[!] [oneArg] [count] [flags]
Run Code Online (Sandbox Code Playgroud)

类似于

:[range]P[rint] [count] [flags]
Run Code Online (Sandbox Code Playgroud)

要么

:[range]d[elete] [x] {count}
Run Code Online (Sandbox Code Playgroud)

该命令MyCMD最终会调用一个函数来完成一些工作.我写了这一行(不会起作用)

command! -nargs=+ -range -bang -count=0  MyCMD <line1>,<line2>call MyFUNC(<q-args>, "<bang>","<count>", .... ..)
Run Code Online (Sandbox Code Playgroud)

这里的问题是,如何处理这些参数:

  • 问题1我读到的帮助,-range并且-count不能在不同时使用,但我需要他们.我还看了一些vim命令,比如:delete,:print,当我们使用这些命令时,我们可以给两个rangecount.另外,我发现vim doc有两个相同命令的条目,如果a {count}或者[count]是可用的.喜欢:

    :[range]d[elete] [x]    
    :[range]d[elete] [x] {count}
    
    Run Code Online (Sandbox Code Playgroud)

要么

:[range]p[rint] [flags]
:[range]p[rint] {count} [flags]
Run Code Online (Sandbox Code Playgroud)

这是为什么?为什么不随着[count]?(这将是另一个小问题)

  • 问题2来自我的设计,所有这些参数都是可选的,它们都有默认值(参见下表).如何将这些参数传递给函数(我检查过<q-args> and <f-args>)以及如何区分哪些用户输入是哪个参数?例如用户给出

    :MyCMD 5 g

    argName | Default value | …
    Run Code Online (Sandbox Code Playgroud)

vim

10
推荐指数
1
解决办法
3817
查看次数

区分当前缓冲区的最佳方法是位置列表还是quickfix列表?

我有一个autocmd,如果ftqf,它会调用一些函数来修改quickfix列表get/setqflist()

我知道还有另外一对函数get/setloclist()来处理位置列表.

我的问题是,如何知道当前缓冲区是否qf-listlocation-list(它们都有filetype qf),以便我知道应该调用哪些函数?

到目前为止,我能想到的是,假设loc和qf列表都不为空,在qf-list上做一些更改,并与当前缓冲区进行比较,如果当前缓冲区也被更改,则为qf-list,否则应该是位置列表.最后回滚更改.但我觉得这很愚蠢...应该有更好的方法来做出决定.

我错过了一些函数/标志/变量吗?

vim

9
推荐指数
2
解决办法
964
查看次数

Linux - 如何列出所有用户

如何编写linux脚本,列出/ etc/passwd中的所有用户及其UID

User1 uid=0001
User2 uid=0002
Run Code Online (Sandbox Code Playgroud)

...

脚本应该使用:grep,cut,id,for

linux awk grep uid

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

hibernate composite主键包含一个复合外键,如何映射这个

我在那里搜索,没有找到任何类似的话题,所以我发布了一个新问题.

我正在使用现有数据库上的Hibernate.我们不允许更改表结构和数据.应用程序正在从数据库中读取数据,并根据某些逻辑迁移到另一个数据存储区.

现在问题是关于复合PK映射.例如

表A具有复合PK.

Table A
--------
a1 (pk)
a2 (pk)
a3 (pk)
a4 (pk)
foo
bar
========
Run Code Online (Sandbox Code Playgroud)

表B也具有复合PK,并且该复合PK的一部分是A的PK,这里也用作FK.

Table B
--------
a1 (fk,pk)
a2 (fk,pk)
a3 (fk,pk)
a4 (fk,pk)
b1 (pk)
b2 (pk)
b3 (pk)
foo
bar
========
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但没有一种方法可行.谁能告诉一个有效的Hibernate映射解决方案?注释风格更好.

java hibernate hibernate-annotations

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

awk将颜色代码添加到文本中

awk -F: '{ printf  "%-3s %-2s","\n" $1 $2; }'
Run Code Online (Sandbox Code Playgroud)

我如何添加颜色代码?'\ E [1;32米'

我尝试添加到printf,它给我输出字符串而不是颜色代码..

'\e[1;32m' .......
Run Code Online (Sandbox Code Playgroud)

linux bash shell awk

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

如何在Emacs中的引号,括号之间选择文本?

在vim中,你可以通过vi",vi [,vi(...

例如,如果您有这样的行:

x = "difference between vim and emacs"
Run Code Online (Sandbox Code Playgroud)

并且光标位于这些引号之间的任何位置,并且您点击了"vi",然后将在视觉上选择该字符串.

emacs text-editor

8
推荐指数
3
解决办法
2820
查看次数

标签 统计

awk ×4

linux ×3

vim ×3

bash ×2

grep ×2

csv ×1

cut ×1

emacs ×1

filesystems ×1

hibernate ×1

hibernate-annotations ×1

java ×1

regex ×1

sed ×1

shell ×1

string ×1

text-editor ×1

uid ×1