Deleting lines of code in a text editor编辑:这个问题被标记为"托尔斯泰",以感谢我的写作质量和长度:)仅阅读第一和最后一段就足够了:)如果您倾向于使用鼠标选择和移动代码,中间可能对您很有趣。 这个问题是关于您一般如何使用文本编辑器的。我正在寻找删除多行代码的最佳方法(无意申请专利:)这扩展到转置行,即删除并将它们添加到其他地方。最重要的是,我不想创建任何必须单独删除的空白行。有点像Visual Studio的SHIFT + DELETE功能,但可同时处理多行。 假设您要从以下代码中删除第3行(标签和换行符也可视化)。天真的方法是在尖括号之间选择文本:
然后按退格键。这将创建一个空行。再按两次退格键删除 t和 n。 您最终得到:
当您尝试选择整行时,Visual Studio不允许您选择结尾的换行符。例如,将光标放在一行上并按SHIFT + END不会在末尾选择换行符。如果您使用鼠标,也不会选择换行符,即单击一行的中间并将光标一直拖动到最右边。仅当选择至少跨越两行时,才选择结尾的换行符。我使用的大多数编辑器都是这样做的。 Microsoft WordPad和Word是反示例(在其中删除文本时,我经常会出现换行错误;至少Word可以显式显示行尾和段落末尾字符)。 一般而言,在使用Visual Studio和其他编辑器时,以下是目前最适合我的解决方案: 使用鼠标,选择放在尖括号之间的字符:
现在点击退格键,即可一次性删除该行,而不必删除任何其他字符。这一次可用于多个连续行。另外,它可以用于换位线。您可以将尖括号之间的选择拖动到插入符号标记的点:
这使您拥有:
第3和第4行已切换位置。 这个主题有很多变化。当您要删除第3行时,您还可以选择以下字符:
实际上,如果您告诉Visual Studio选择完整的行,这就是Visual Studio所做的。通过单击代码和红色圆圈指示断点的列之间的边距来执行此操作。鼠标指针在该区域进行了镜像,以更好地区分它,但是我认为它太窄了,并且在物理上与我要选择的代码相距太远。 也许这种方法对其他人也很有用,即使它只是使他们知道选择/删除文本时如何处理换行符:)对于大多数非专业的文本编辑器来说,它也很好用。但是,鉴于Visual Studio的大量功能和插件(我最常使用),我相信有更好的方法来使用它删除和移动代码行。在不同块之间移动代码时自动正确地使缩进效果很好(即无需点击"设置文档格式/选择格式")。我期待提出建议;请勿进行微优化,请:) 答案摘要 关于Visual Studio:使用光标键进行良好导航。 最适合我的代码遍历和编辑风格的解决方案是Eclipse方式: 您可以选择几行连续的代码行,其中第一行和最后一个选定的行可能仅被部分选择。按下ALT + {up,down}上下移动整行(不只是所选内容),随行固定缩进。按CTRL + D可以完全删除行(而不仅仅是所选内容),而不会留下任何不需要的空白行。我很想在Visual Studio中看到这个! 在VIM中:
您始终可以在任何命令前添加数字以重复该命令,因此要删除10行,请执行以下操作:
您还可以指定要删除的行范围。例如,要删除第10-15行:
或者,您可以移动这些行,例如,将第10-15行移动到第20行以下:
或者,您可以复制以下行:
在Emacs中:
C-a C-k C-k-杀死包括换行符在内的整行(或C-S-backspace的
C-u C-y-撤消最近杀死的文本(又名粘贴) 我要做的是,从光标开始于行的开头(在某些编辑器中,您必须按两次home键才能执行此操作),按住shift键并向下按,直到选中了要删除的所有行。然后我按删除。 在Eclipse中,您可以ALT-或ALT-移动一行。我发现此功能以及复制行的ALT-SHIFT- {,}都非常有用。此外,它不会破坏剪贴板。随着行的移动,它甚至可以纠正缩进! 添加到现有的vim答案中,您可以将d与任何光标移动命令一起使用,以从光标的当前位置删除到新位置。例如,删除...
非常灵活。 学习使用光标键。 对于移动线,请执行以下操作: 这几乎可以在Windows上的所有文本编辑器中使用。 当删除行时,我仍然倾向于使用Ctrl + X(尽管我猜我也使用退格键),因为上面的内容在我的编辑方式中根深蒂固,并且也更加宽容。 (尽管我发现使用Mac时他们会迷失方向,但我认为Apple可能在设置Home / End时采用了某些方法,在Mac上跳过了单词快捷键)
在Emacs中,除了
Ctrl + Shift + L删除行而不将其复制到缓冲区。 除上述内容外,请使用Resharper for Visual Studio进行所需的操作。您将找到的最佳VS插件。它提供了许多不同的命令,可帮助您在此处和各处移动/删除/复制代码。更不用说重构/生成/等代码。
Ctrl-Shift-Alt or 将向上或向下移动方法,向上或向下排列等。 有关完整列表,请参见http://www.jetbrains.com/resharper/docs/ReSharper40DefaultKeymap2.pdf。
在Eclipse中,我使用CTRL + D删除一行(或两行) 使用简短的键盘映射,可以使用Alt + L标记该行,并使用数字键盘上的-键(或Alt + D)将其剪切到剪贴板。剪切将完全删除该行,包括换行符。 在数字小键盘上击中Ins键会将该行放回包含换行符的文档中。 恕我直言,摘要是一个设计精良的键盘映射。 PS:我认为MSVC可以模拟简短的键盘映射。 |