我使用ack.vim,并在我的COUNT(DISTINCT)
SELECT S.State, S.City,
COUNT(DISTINCT S.Supp_ID) AS Supp_Count,
COUNT(DISTINCT C.Con_ID) AS Cust_Count
FROM SuppTb S JOIN
TransTb T
ON S.Supp_ID = T.Supp_ID JOIN
ConsTb C
ON T.Con_ID = C.Con_ID
GROUP BY S.State, S.City;
在我的笔记文件中搜索标签,这些标签以双引号后跟非空格字符开头。
工作正常,因为我的笔记文件位于一个公共目录中,比如.vimrc
。
现在,在git repo上说,例如,nnoremap ;f :Ack! ^\"
,我想要在该目录下面的keymap,
~/notes
如果在给定目录下工作,我可以手动设置键映射,但很快就会变得单调乏味。
所以我想知道,当我启动vim时,如何在工作目录上设置keymap。
- 希望vimscript解决方案,可能有助于bash命令。
答案 0 :(得分:1)
查看https://stackoverflow.com/a/456889/15934
暴露的解决方案可以解决您的问题。通过定义缓冲区特定的映射(:h :map-<buffer>
,或者定义可以在映射中使用的缓冲区变量(:h b:var
)。
答案 1 :(得分:0)
正如@Luc建议的那样,我可以使用autocmd
基于BufEnter
和BufCreate
的文件名。哪个工作正常。
然后我问自己,为什么只坚持命令? 只需使用vim内置函数和简单的vimscript语句!!
所以,让我们把我的要求分解到不同的部分。
getcwd()
。=~
。 What does =~ mean in VimScript? 是我vimrc
中的内容,
"git, see also " grep
if getcwd() =~ "/code/repoA/"
nnoremap ;f :Ack! ^\/\/\ *\"
nnoremap ,a :!cd %:p:h && git add %<CR>
else
nnoremap ;f :Ack! ^\"
endif