小编ib.*_*ib.的帖子

如何一次在整个文件中折叠到 Vim 中的特定级别?

我想在 Vim 中按下一个按钮并折叠所有代码,以便只显示特定(和可变)缩进级别的代码。例如,当我只想查看方法名称而不是缩进的例程时,这非常有用。

Vim: Fold top level folds only ”问题有一个缩进级别的解决方案,但每次更改级别时都需要设置环境。

当我的光标处于缩进级别(比如级别 2)时,我希望整个文件在所有方法中都折叠到该缩进级别。

这是否内置于 Vim 的某个地方?有谁知道一个很好的插件可以做到这一点?

vim

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

Vim:在基于游标下角色的函数中做一些事情?

我正在编写一个在LaTeX中编辑特定环境的函数.

环境基本上是这样的:

\begin{quicktikz}
    ...some stuff...
\end{quicktikz}
Run Code Online (Sandbox Code Playgroud)

或者像这样:

\begin*{quicktikz}
    ...some stuff...
\end{quicktikz}
Run Code Online (Sandbox Code Playgroud)

我想编写一个在环境中调用时在两者之间切换的函数.由于我的Vim知识不是全部,我想出一个简单的解决方案:

  1. 获取光标位置 let save_cursor=getpos(".")
  2. 向后搜索\begin{quicktikz}使用:?\\begin{quicktikz}\|\\begin\*{quicktikz}
  3. 搜索{并向左移动:normal 0f{h
  4. 检查光标下的项目是否等于 *
    • 如果确实如此 normal x
    • 如果不这样做的话 normal a*<esc>
  5. 使用恢复光标位置 call setpos('.',save_cursor)

除了步骤3之外,我知道如何完成所有这些操作.如何检查光标下的字符是否等于*

如果您知道更好的方法,欢迎分享这一点.

vim cursor

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

Vim autocmd(保存文件,运行代码格式化程序,重新加载文件)

我希望将源代码格式化程序Uncrustify与Vim 集成.以下两个选项中的任何一个都足够了.

  1. 格式化我当前正在编辑的代码(即gq按下时).
  2. 保存文件时格式化代码,然后将格式化文件重新加载到当前Vim窗口.

选项1是优选的.我试过了

set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup
Run Code Online (Sandbox Code Playgroud)

即我用命令行选项调用Uncrustify.这不起作用.Vi给出了E518: Unknown option: ~/misc/uncrustify.cfg错误.

对于选项2,我在vimrc文件中尝试了以下内容

autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>
Run Code Online (Sandbox Code Playgroud)

保存后文件格式化,但我必须手动将文件重新加载到Vim中.

vim uncrustify

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

Vim:编辑特定文件时运行一些命令

我希望我的Vim运行一些命令,例如setlocal spell spelllang=en_us当我编辑扩展名为的文件时en,例如abc.en.我该如何实现呢?

vim

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

在 std::unordered_set&lt;std::unique_ptr&gt; (C++20) 中找到一个指针 T*

正如指出的使用的std ::的unique_ptr的一个std :: unordered_set,这是不容易找到一个指针T*std::unordered_set<std::unique_ptr<T>>。在 C++20 之前,我们被迫构造一个std::unique_ptr<T>.

感谢无序容器提案的异构查找http://wg21.link/P0919r3http://wg21.link/p1690r1),这个问题在 C++20 中得到解决。但是可用的解决方案对我来说看起来很笨拙(即使按照 C++ 标准)。似乎我需要从头开始实现不是一个,而是两个函子(用于透明散列和透明比较):

template<class T>
struct Equal {
    using is_transparent = void;
    bool operator()(const std::unique_ptr<T>& lhs, const std::unique_ptr<T>& rhs) const {
        return lhs == rhs;
    }
    bool operator()(const std::unique_ptr<T>& lhs, const T* rhs) const {
        return lhs.get() == rhs;
    }
    bool operator()(const T* lhs, const std::unique_ptr<T>& rhs) const {
        return lhs == rhs.get();
    }
};

template<class …
Run Code Online (Sandbox Code Playgroud)

c++ unordered-set unique-ptr c++20

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

如何在没有python或ruby的情况下在Vim中获得计数器变量?

我没有启用python/ruby​​.我的问题:我经常要编写如下内容:

%macro(200701);x gzip /home/test/200701.txt;run;
%macro(200702);x gzip /home/test/200702.txt;run;
%macro(200703);x gzip /home/test/200703.txt;run;
%macro(200704);x gzip /home/test/200704.txt;run;
%macro(200705);x gzip /home/test/200705.txt;run;
%macro(200706);x gzip /home/test/200706.txt;run;
%macro(200707);x gzip /home/test/200707.txt;run;
%macro(200708);x gzip /home/test/200708.txt;run;
%macro(200709);x gzip /home/test/200709.txt;run;
%macro(200710);x gzip /home/test/200710.txt;run;
%macro(200711);x gzip /home/test/200711.txt;run;
%macro(200712);x gzip /home/test/200712.txt;run;

%macro(200801);x gzip /home/test/200801.txt;run;
%macro(200802);x gzip /home/test/200802.txt;run;
%macro(200803);x gzip /home/test/200803.txt;run;
%macro(200804);x gzip /home/test/200804.txt;run;
%macro(200805);x gzip /home/test/200805.txt;run;
%macro(200806);x gzip /home/test/200806.txt;run;
%macro(200807);x gzip /home/test/200807.txt;run;
%macro(200808);x gzip /home/test/200808.txt;run;
%macro(200809);x gzip /home/test/200809.txt;run;
%macro(200810);x gzip /home/test/200810.txt;run;
%macro(200811);x gzip /home/test/200811.txt;run;
%macro(200812);x gzip /home/test/200812.txt;run;
Run Code Online (Sandbox Code Playgroud)

在Vim有这么快的方法吗?

我通常会输入:

%macro(200701);x gzip /home/test/200701.txt;run;
Run Code Online (Sandbox Code Playgroud)

然后发出以下命令:

yy11p10<up>13<right>r2<down>r3<down>r4<down>... …
Run Code Online (Sandbox Code Playgroud)

vim macros repeat

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

如何实现B+树中的字符串键?

许多b+树示例都是使用整数键实现的,但是我见过一些同时使用整数键和字符串键的其他示例,我学习了b+树基础,但我不明白字符串键是如何工作的?

c b-tree

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

像Intellij Idea一样在Vim中进行CamelCase扩展?

在Intellij Idea中,有一个功能.假设我myCamelCase在代码中的某处使用过变量.然后,如果我键入mCC并按Ctrl- Enter或某些此类组合键,它会扩展为myCamelCase.Vim有类似的东西吗?

vim camelcasing intellij-idea

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

如何在 Vim 中更改 Python 颜色?

谁能告诉我如何在 Vim 中更改 Python 颜色。我已经看到以下语法,但我不确定如何使其永久化。

:hi pythonComment ctermfg=2 gui=italic guifg=#408010
Run Code Online (Sandbox Code Playgroud)

python vi vim

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

在Vim中删除包含字符串的完整单词

我试图删除一行中的单词,如果它们包含一个特定的字符串.以下是文本示例:

host-a, host-b, host-c+test, host-d, host-e+test
Run Code Online (Sandbox Code Playgroud)

我想删除任何包含的内容+test,结果为:

host-a, host-b, host-d
Run Code Online (Sandbox Code Playgroud)

同样,我需要逐行应用它,而不是文件中的所有行.它将在宏中使用.

我怎样才能做到这一点?

string vi vim

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