所以,假设我使用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) 我想知道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) 有没有办法使用bash删除某些输入CSV文件的最后四列?最后四列可以包含从一行到另一行的长度不同的字段,因此仅从每行的末尾删除一定数量的字符是不够的.
我有这个字符串
-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做到这一点?
我想写一个命令,这个命令会有这样的格式:
[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,当我们使用这些命令时,我们可以给两个range和count.另外,我发现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)我有一个autocmd,如果ft是qf,它会调用一些函数来修改quickfix列表get/setqflist()
我知道还有另外一对函数get/setloclist()来处理位置列表.
我的问题是,如何知道当前缓冲区是否qf-list或location-list(它们都有filetype qf),以便我知道应该调用哪些函数?
到目前为止,我能想到的是,假设loc和qf列表都不为空,在qf-list上做一些更改,并与当前缓冲区进行比较,如果当前缓冲区也被更改,则为qf-list,否则应该是位置列表.最后回滚更改.但我觉得这很愚蠢...应该有更好的方法来做出决定.
我错过了一些函数/标志/变量吗?
如何编写linux脚本,列出/ etc/passwd中的所有用户及其UID
User1 uid=0001
User2 uid=0002
Run Code Online (Sandbox Code Playgroud)
...
脚本应该使用:grep,cut,id,for
我在那里搜索,没有找到任何类似的话题,所以我发布了一个新问题.
我正在使用现有数据库上的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映射解决方案?注释风格更好.
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) 在vim中,你可以通过vi",vi [,vi(...
例如,如果您有这样的行:
x = "difference between vim and emacs"
Run Code Online (Sandbox Code Playgroud)
并且光标位于这些引号之间的任何位置,并且您点击了"vi",然后将在视觉上选择该字符串.