Notepad++:如何通过快捷键将首字母大写?

30

我有一个包含很多单词的列表(每个单词在txt文件中占一行),其中某些单词需要手动(例如手动)大写字母。因此,我正在寻找Notepad ++(我的编辑器)中是否有快捷键来自动大写每行的第一个字母,但没有找到。这是不可能的吗?如果没有,你能否向我推荐另一个Windows程序,以便我可以使用简单的快捷键快速完成这项工作(因此我可以通过箭头下键进行浏览,并在特定单词上需要时使用快捷键)?


这可能会有所帮助:http://superuser.com/questions/223016/can-i-search-and-replace-in-a-notepad-macro - paulsm4
其实不是,但昨天我自己做了这件事,花了我大约2个小时,不过没关系... - tim
Q: 你的解决方案是什么? Q: 你对这个解决方案感到满意吗?而且只用了两个小时,你觉得如何? Q: 如果不满意,你是否考虑过编写 awk 脚本、Perl 或 Java 程序来代替使用 Notepad++? - paulsm4
我是手动完成的,所以我并不满意,但由于没有其他选择,我也看不到任何捷径可走...... - tim
11个回答

75

如果第一个字母是拉丁字符,那么这很容易实现。但是对于非拉丁字符(例如西里尔字母),这种方法无效。只需按下Ctrl+F,启用“正则表达式”复选框,并搜索

^(.)

替换为(全部替换)

\u\1

需要取消". 匹配换行符"的复选框。


2
天才。+1。这个替换模式在英语中是什么意思? - Joshua Frank
5
这句话的意思是,找到每一行开头的任何符号 /./ ,将其放在第一个组 /括号 - ()/ 中,并用同样的大写符号 /\u/ 替换第一个组 /\1/。 - Placido
哇,我使用了很多正则表达式,但我不知道那个。谢谢! - Joshua Frank
似乎在Notepad++ v5.8.7 中无法工作 - 它只是在每行开头放置 "\u"。更新:找到了替代解决方案https://dev59.com/VGHVa4cB1Zd3GeqPr_VU#9869702 - Bolesław Denk
2
替换应该使用 Ctrl + H - Matthias
显示剩余2条评论

10

2
TextFX 是我认为最简单的解决方案。安装插件后,只需选择所有相关文本,然后导航到“TextFX > TextFX Characters > Sentence case”。 - arkon
我在寻找“Proper Case”,我忘记它已经在那里了。 - BillyNair

7
对于那些很难遵循文本说明的人,这里有一张截图(感谢@Placido提供答案)。 enter image description here

4

在 N++ 中启用列模式,然后选择第一列。将大小写更改为大写。


1
你的回答有点含糊。你没有说明如何选择列,或者如何改变所选择内容的大小写。 - Wai Ha Lee
1
要使用列模式,请将光标放置在您想要开始的位置,按住alt键并拖动。或按alt-shift-arrow(没有尝试过那种方式)。 对于OP似乎没有用,但对我有用。 - nasch
我会给你的答案点赞(+1),因为它帮助了我,但WaiHaLee是正确的,你应该解释如何进入列模式以及如何选择第一列(你仍然可以通过编辑你的答案来完成它,赶紧行动吧!)。感谢@nasch。 - Jose Manuel Abarca Rodríguez

3
首先选择文本,然后使用ALT+U快捷键。

对我不起作用,也许您安装了某种插件...基本的Notepad ++安装=>不可能 :) - tim

3

在Notepad++ v7.3.2中有一个快捷方式可将一行的首字母大写(句子格式)。

ALT + CTRL + U

之前的版本不确定是否也有该功能。


2
我选择了整个文本并按下了快捷键,但只有第一行被大写了。不过,这是一个有趣的快捷方式。 - Leukipp

2
  1. 在notepad++中打开您的文件
  2. 按下ctrl + F
  3. 点击“替换”选项卡
  4. 将\n[您想要大写的字母]放入“查找内容”字段中
  5. 将\n[大写的字母]放入“替换为”字段中
  6. 将搜索模式设置为“扩展”
  7. 点击“全部替换”按钮

这将大写每行的第一个字母。您可以修改此方法以满足其他条件下的大写需求。


谢谢,但这不是我要找的。每个单词都不同,我需要查看它是否需要大写(因此通过向下箭头键滚动列表),如果需要,那么我想快速为此行执行此操作... - tim

1

首先按下alt+ctrl+shift选择第一列。 选择完成后,按下ctrl+U键即可解决问题。


1
你可以用一种非传统的方式快速完成,但是需要使用TotalCommander。
创建一个文件并命名为所需大写的文本。 在TotalCommander中选择此文件。 按Ctrl + M(Multirename Tool)。 在“Uppercase / Lowercase”下拉菜单中选择“每个单词的首字母大写”。
在Windows下。 存在一个缺点:如果我没有记错,文件名限制为255个字符。 某些特殊字符将被省略(斜杠、双引号等)。
类似的软件,如Far,也应该以相同的方式工作。

1

您尝试过录制宏并将其分配给快捷方式吗?例如,您的替换可以是:

Find what:    (\A|[.!?]\s+)(\w+)
Replace with: $1\u$2

Tick 'In selection'

然后在顶部菜单中导航至 修改快捷键/删除宏...,并分配一个快捷键。


这是我从 C:\Users\%USERNAME%\AppData\Roaming\Notepad++\shortcuts.xml 中提取出来的宏。
它使用了快捷键 Ctrl + Shift + C
<Macro name="Capitalise" Ctrl="yes" Alt="no" Shift="yes" Key="67">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="(\A|[.!?]\s+)(\w+)" />
    <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="$1\u$2" />
    <Action type="3" message="1702" wParam="0" lParam="896" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
</Macro>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接