标签: comments

这个 Vim 映射出了什么问题?

在我用来初始化一些 TeX 相关设置的函数内部,我定义了以下映射:

vmap <buffer> ucm :s/^\% //<CR>:nohlsearch<CR>
Run Code Online (Sandbox Code Playgroud)

我希望它能让我轻松地取消注释视觉上选择的行。类似的:

vmap <buffer> cm :s/^/\% /<CR>:nohlsearch<CR>
Run Code Online (Sandbox Code Playgroud)

在评论方面做得非常好。其他语言的类似映射(使用 # 而不是 %)也可以正常工作。最后那些看起来像这样:

vmap <buffer> cm :s/^/# /<CR>:nohlsearch<CR>
vmap <buffer> ucm :s/^# //<CR>:nohlsearch<CR>
Run Code Online (Sandbox Code Playgroud)

一系列的V10jcmV10kucm应该使代码保持完整。

那么现在:我做错了什么?

regex mapping vim comments key-bindings

0
推荐指数
1
解决办法
163
查看次数

为什么在 C++ 中注释掉多行注释不一致?

所以我们知道

// This doesn't affect anything

/*
This doesn't affect anything either
*/

/*
/* /* /*
This doesn't affect anything
*/
This does because comments aren't recursive

/* /*
This doesn't affect anything
*/ */
This throws an error because the second * / is unmatched since comments aren't recursive
Run Code Online (Sandbox Code Playgroud)

我听说它们不递归的原因是因为它们会减慢编译器的速度,我想这是有道理的。然而现在,当我用更高级的语言(比如 Python)解析 C++ 代码时,我可以简单地使用正则表达式

"\/[\/]+((?![\n])[\s\S])*\r*\n"
Run Code Online (Sandbox Code Playgroud)

匹配// single line comments并使用

"\/\*((?!\*\/)[\s\S])*\*\/"
Run Code Online (Sandbox Code Playgroud)

匹配/* multiline comments */,然后循环遍历所有单行注释,将其删除,然后循环遍历所有多行注释并将其删除。或相反亦然。但这就是我被困住的地方。似乎只做其中之一还不够,因为:

// /*
An error is thrown because the /* …
Run Code Online (Sandbox Code Playgroud)

c++ regex compiler-construction comments

0
推荐指数
1
解决办法
1925
查看次数

这个评论结构的名称是什么?

我有一段时间第一次教授 C++ 编程课程,并且在某种程度上基于基础书籍示例,我发现学生希望他们的所有评论都像这样位于行尾:

for (int count = 1; count <= days; count++) {   // Loop for each day
    organisms += organisms * increase;          // Compute organisms
    cout << organisms << endl;                  // Print out organisms
}
Run Code Online (Sandbox Code Playgroud)

相反,我试图让他们使用专门的注释行,为此目的总结了几行代码:

// Update & display organisms for each day
for (int count = 1; count <= days; count++) { 
    organisms += organisms * increase;          
    cout << organisms << endl;                  
}
Run Code Online (Sandbox Code Playgroud)

后一种非行尾注释样式有合适的名称吗?

c++ comments

0
推荐指数
1
解决办法
194
查看次数

如何在Python中将变量字符串插入多行注释中?

exec我想像这样定义一个Python函数:

exec """def my_func(alpha = 'a'):
  return alpha"""
Run Code Online (Sandbox Code Playgroud)

有用。alpha = 'a'但是,出于特定原因,我想在单独的字符串中定义:

s = "alpha = 'a'"
exec """def my_func(s):
  return alpha"""
Run Code Online (Sandbox Code Playgroud)

但这不起作用。有没有办法以这种方式将字符串变量内容插入到多行注释字符串中?

python comments

0
推荐指数
1
解决办法
3651
查看次数

如何在Python中注释掉一行代码的一大块?

在 PHP 等语言中,我们可以执行以下操作:

>>> echo "cat is"." not"." dead"
cat is not dead

>>> echo "cat is"/*." not"*/." dead"
cat is dead
Run Code Online (Sandbox Code Playgroud)

我在第二行所做的是,使用 PHP 的多行注释功能注释掉其中的一部分。

请让我知道如何在 Python 中执行相同的操作,而不将代码行分成单独的行。

谢谢..!

python comments

0
推荐指数
1
解决办法
585
查看次数

如何根据特定的grep注释掉多行?

这是一个测试文件

dog
dogcatmoose
case $- in 
      *i*);;
        *) return;;
esac

catmoose
case
esac
dog cat
esac
Run Code Online (Sandbox Code Playgroud)

我需要注释掉以下内容:

dog
dogcatmoose
#case $- in 
#      *i*);;
#        *) return;;
#esac

catmoose
case
esac
dog cat
esac
Run Code Online (Sandbox Code Playgroud)

请注意,仅注释掉了特定行。另请注意,我需要对多个文件执行此操作,并且注释掉的那些行可能位于文件的不同区域。然而,这些线将永远在一起。因此我无法根据行号使用 sed 进行注释。

我如何具体注释掉这些行,这将适用于多个文件,其中该部分可能位于文件中的任何位置。我假设我可以 grep on'case $- in'然后注释掉该行以及esac之后的第一个实例的所有行'case $- in'

我怎样才能做到这一点?

bash awk grep comments sed

0
推荐指数
1
解决办法
449
查看次数

static void Main 内的 C# 文档注释

我在任何地方都找不到有关 C# 文档注释的答案,所以请解释一下:

如果我在 [someFunc()] 中有一个单独的类和一个方法,那么使用 /// Visual Studio 将插入该方法的文档注释。

namespace someNs
{
    internal class someClass
    {   
        /// <summary>
        /// 
        /// </summary>
        
        public void someFunc()
        {          
        }        
    } 
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在“static void Main(string[] args)”中有一个方法,那么使用 /// 不起作用。

namespace someNs
{
    internal class Program
    {
        static void Main(string[] args)
        { 
            void someFunc()
            {
            }        
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

请解释为什么会这样,是否可以通过某种方式添加文档注释?

谢谢。

c# documentation comments visual-studio

0
推荐指数
1
解决办法
114
查看次数

如何在评论中竖起大拇指?

我甚至不知道应该问什么问题.好吧,我想为我的评论竖起大拇指,但不确定如何或最好的方式.我只是为竖起大拇指创建一个新字段吗?

php mysql comments

-1
推荐指数
1
解决办法
565
查看次数

Rails:评论

我想在application.html.erb中注释掉一些东西

 <!--
    <div id="user_nav">
 <% if user_signed_in? %>
   Signed in as <%= current_user.email %>. Not you?
   <%= link_to "Sign out", destroy_user_session_path %>
 <% else %>
   <%= link_to "Sign up", new_user_registration_path %> or
   <%= link_to "Sign in", new_user_session_path %>
<% end %>
</div>

//-->
Run Code Online (Sandbox Code Playgroud)

这不可能.怎么办?

comments ruby-on-rails

-1
推荐指数
1
解决办法
137
查看次数

使用注释在代码之间交换

我想出了一种快速方法,可以使用注释快速测试代码中的两个变体之间进行交换:

doSomeNormalCode();
findAnObject()
//*/
.doA()
/*/
.doB()
//*/
;
additionalNormalCode();
Run Code Online (Sandbox Code Playgroud)

这称为findAnObject().doA(); 简单地删除和/之间的第一次交换.这可以通过添加更多行来扩展:.doA().doB()/*/

doSomeNormalCode();
findAnObject()
//*/
.doA()
/*/
.doB()
/*/
.doC()
/*/
.doD()
/*/
.doE()
//*/
;
additionalNormalCode();
Run Code Online (Sandbox Code Playgroud)

执行此操作findAnObject().doA().doC().doE(); 您可以将任何/*/一个//*/转换为a 来切换它下面的所有行.因此,添加/之前.doB()会将其更改为findAnObject().doA().doB().doD().doF();

这当然非常复杂.我已经习惯了它,它对我来说非常快.我从来没有将它保存在已提交的代码中,只是为了快速交换测试选项.

有没有更简单的方法在各种选项之间快速切换,除了注释掉一个部分并取消注释另一个部分,如果在注释掉的代码中有/**/注释,则需要每行都有前缀,这可能很麻烦//.

我在这里明显提到C风格的评论,但我也对其他语言感兴趣.

c comments

-1
推荐指数
1
解决办法
94
查看次数