Visual studio 在文本编辑器中删除代码行

Visual studio 在文本编辑器中删除代码行,visual-studio,eclipse,vim,emacs,text-editor,Visual Studio,Eclipse,Vim,Emacs,Text Editor,编辑:鉴于我写作的质量和篇幅,这个问题被贴上了“托尔斯泰”的标签:)只要读第一段和最后一段就足够了:)如果你倾向于用鼠标选择和移动代码,中间的东西可能会让你感兴趣 这个问题是关于一般如何使用文本编辑器的。我正在寻找删除多行代码的最佳方法(无意申请专利:)这扩展到了换位代码行,即删除代码行并将其添加到其他地方。最重要的是,我不想创建任何必须单独删除的空行。有点像VisualStudio的SHIFT+DELETE功能,但可以同时处理多行 假设您想从下面的代码中删除第3行(也可以可视化选项卡和换行符)

编辑:鉴于我写作的质量和篇幅,这个问题被贴上了“托尔斯泰”的标签:)只要读第一段和最后一段就足够了:)如果你倾向于用鼠标选择和移动代码,中间的东西可能会让你感兴趣

这个问题是关于一般如何使用文本编辑器的。我正在寻找删除多行代码的最佳方法(无意申请专利:)这扩展到了换位代码行,即删除代码行并将其添加到其他地方。最重要的是,我不想创建任何必须单独删除的空行。有点像VisualStudio的SHIFT+DELETE功能,但可以同时处理多行

假设您想从下面的代码中删除第3行(也可以可视化选项卡和换行符)。天真的方法是在尖括号之间选择文本:

if (true) {\n \t int i = 1;\n \t <i *= 2;>\n \t i += 3;\n }\n if (true) {\n \t int i = 1;<\n \t i *= 2;>\n \t i += 3;\n }\n 如果(真){\n \t int i=1;\n \t\n \ti+=3;\n }\n 然后点击backspace。这将创建一个空行。再按两次backspace可删除\t和\n

你最终会得到:

if (true) {\n \t int i = 1;\n \t i += 3;\n }\n 如果(真){\n \t int i=1;\n \ti+=3;\n }\n 当您尝试选择整行时,VisualStudio不允许您选择尾随的换行符。例如,将光标放置在一行上并按SHIFT+END不会选择末尾的换行符。如果你使用你的鼠标,也就是说,你也不会选择换行,也就是说,点击中间的一行,并拖动光标一直到右边。如果所做的选择至少跨越两行,则只能选择尾随的换行符。我使用的大多数编辑器都是这样做的;Microsoft WordPad和Word是反例(我在删除文本时经常会出现换行错误;至少Word可以显式显示行尾和段落结尾字符)

在使用Visual Studio和其他编辑器时,以下是目前最适合我的解决方案:

使用鼠标选择放在尖括号之间的字符:

if (true) {\n \t int i = 1;\n \t <i *= 2;>\n \t i += 3;\n }\n if (true) {\n \t int i = 1;<\n \t i *= 2;>\n \t i += 3;\n }\n 如果(真){\n \t int i=1;\n \ti+=3;\n }\n 现在点击backspace,您可以一次删除该行,而不必删除任何其他字符。这可以同时适用于多个连续的行。此外,它还可用于换位线路。可以将尖括号之间的选择拖动到用插入符号标记的点:

if (true) {\n \t int i = 1;<\n \t i *= 2;>\n \t i += 3;^\n }\n 如果(真){\n \t int i=1;\n \ti+=3;^\n }\n 这就给您留下了:

if (true) {\n \t int i = 1;\n \t i += 3;<\n \t i *= 2;>\n }\n 如果(真){\n \t int i=1;\n \ti+=3;\n }\n 其中3号线和4号线已切换位置

这个主题有很多变化。要删除第3行时,还可以选择以下字符:

if (true) {\n \t int i = 1;\n <\t i *= 2;\n >\t i += 3;\n }\n 如果(真){\n \t int i=1;\n \ti+=3;\n }\n 事实上,如果您让VisualStudio选择一个完整的行,它就是这样做的。您可以通过单击代码和红色圆圈所在列之间的空白处来执行此操作,红色圆圈表示断点。鼠标指针镜像在该区域,以便更好地区分它,但我认为它太窄,并且与我想要选择的代码的物理距离太远

也许这个方法对其他人也很有用,即使它只是让他们知道在选择/删除文本时如何处理换行:)它对大多数非专业文本编辑器都很有效。然而,考虑到VisualStudio的大量特性和插件(我使用最多),我确信有更好的方法可以使用它来删除和移动代码行。在不同块之间移动代码时,自动获得正确的缩进是很好的(即,不点击“格式化文档/选择”)。我期待着你的建议;请不要对微优化吹毛求疵:)


答案摘要

关于VisualStudio:使用光标键进行良好导航

最适合我查看和编辑代码风格的解决方案是Eclipse方式:

您可以选择多个连续的代码行,其中第一行和最后一行只能部分选择。按ALT+{up,down}可上下移动完整的行(不仅仅是选择项),同时固定缩进。按CTRL+D键将完全删除行(不仅仅是所选内容),而不留下任何不需要的空行。我很想在VisualStudio中看到这个

在Emacs中:

  • 压井管线C-k
  • 换位线C-x C-t
C-a C-k C-k——删除包括换行符在内的整行代码(或
通过C-S-backspace删除整行代码)

C-u C-k——终止行(包括换行)

C-y——在Eclipse中拉回最近被删除的文本(也称为粘贴)

,您可以-↓ 或ALT-↑ 移动一条线。我发现这和ALT-SHIFT一样非常有用-{↓, ↑} 复制行。此外,它不会破坏剪贴板。它甚至会在行移动时更正缩进!

在VIM中:

  • 删除整行,包括换行:
    dd
  • 转置行:
    ddp
您始终可以在任何命令前面加上一个数字以重复该命令,因此要删除10行,请执行以下操作:

10 dd
10日 您还可以指定要删除的行的范围。例如,要删除第10-15行:

:10,15d
:10,15d 也可以移动线,例如,将线10-15移动到第20行下方:

:10,15m20 :10,15m20 或者您可以复制以下行:

:10,15t20 :10,15t20
学习使用光标键

对于移动线,我执行以下操作:

  • 使用↑/↓移动到要复制的行
  • 如果还没有,请点击Home,如果它将光标放在空格后,请再次点击Home
  • 然后按Shift键+↓选择要移动的线
  • 按Ctrl+X组合键剪切线
  • 向上/向下移动到要插入的行
  • Ctrl+V
  • 这在Windows上的任何文本编辑器中都应该可以使用

    删除行时,我仍然倾向于使用Ctrl+X(尽管我猜我也使用Ctrl+X)