Vim自动加载所有标记文件

时间:2016-12-02 02:17:02

标签: vim ctags

我想在启动VIM时自动从特定目录加载所有(c)标记文件。目前我手动添加它们:

set tags+=~/.tags/tag1
set tags+=~/.tags/tag2
set tags+=~/.tags/tag3

我想通过通配符加载所有文件,我尝试过这样的事情:

set tags+=~/.tags/*

遗憾的是,它不起作用。我是如何让这个工作的?

祝福,彼得

3 个答案:

答案 0 :(得分:2)

我猜你必须使用glob()

像(未经测试)的东西:

exe 'set tags+='.substitute(glob('~/.tags'), "\n", ',', 'g')

答案 1 :(得分:0)

您可以通过以下方式在.vimrc中指定多个标签文件,方法是用空格分隔标签文件列表,但是需要反斜杠。

示例后面是2。我这样做是为了从库中导入标记文件。

private void UploadAudio() {

           try {
            jsonObject = new JSONObject();
            Uri uri = Uri.fromFile(new File(fileName));
            jsonObject.put("name", "myaudiorecording.mp3");
            jsonObject.put("audio", uri);

        } catch (JSONException e) {
            Log.e("JSONObject Here", e.toString());
        }


        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "http://ip/audioUpload.php", jsonObject,
                new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject jsonObject) {

                        int responseCode = jsonObject.optInt("success");

                        Log.e("upload", "Success");

                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {

                Log.e("upload", volleyError.toString());

            }

        });
}

在vi中,您可以在命令模式下键入以下内容;

set tags=./TAGS\ /path/to/your/other/TAGS

答案 2 :(得分:0)

您可以尝试(在.vimrc中):

for tagfile in split(globpath('$PWD/.tags/', '*'), '\n')
    let &tags .=',' . tagfile
endfor

我使用$PWD是因为我总是从项目的顶部生成标签文件(并放置在.tags目录中),并从顶部启动vim(所以$PWD在我的作品中有效大小写)-但您可以替代任何硬编码目录。