如何在Launchy中输入文本并将其附加到文本文件的末尾?

时间:2017-10-14 01:37:24

标签: linux bash shell debian echo

我是来自Windows的Debian Stretch用户。在使用launchy应用程序(也适用于Linux)的Windows中,我有一种方法可以将文本输入.txt,然后将其附加到.mdnote.bat的末尾文件。

要在Windows中执行此操作,我创建了一个名为echo %*>>"C:\collectednotes.md"的文件,其中包含以下内容:
launchy

通过将其包含的文件夹添加到“Launchy”→“设置”→“目录”并添加文件类型note.bat,我*.bat了解launchy

从那里,我发起note,输入collectednotes.md,点击标签,输入一些文字,点击 Enter ,然后然后文本将被添加到note.sh的末尾。

我的答案详述了一个主要工作过程。 我会向任何可以调整此过程的人(通过 public static string FirstCharToUpper(string text, bool firstWordOnly = true) { try { if (string.IsNullOrEmpty(text)) { return text; } else { if (firstWordOnly) { string[] words = text.Split(' '); string firstWord = words.First(); firstWord = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(firstWord.ToLower()); words[0] = firstWord; return string.Join(" ", words); } else { return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text.ToLower()); } } } catch (Exception ex) { Log.Exc(ex); return text; } } 和/或下面详述的launchy插件设置)提供绿色复选标记答案,以便妥善处理所有特殊字符。

这可能包含这个问题的解决方案:
Which characters need to be escaped in Bash? How do we know it?

1 个答案:

答案 0 :(得分:0)

解决了(差不多)。我保持这个问题没有得到答复,并且会给剩下的约5%的人完成。使用xfce4-terminal0.8.3-1获得95%解决方案的步骤:

安装launchylaunchy-plugins(两者都是版本2.5-4):
apt-get install launchy
apt-get install launchy-plugins

将终端打开到默认位置~/并创建collectednotes.md
echo "# Launchy Notes Collected Here" > collectednotes.md

创建note.sh shell脚本:
echo '#!/bin/sh' > note.sh

创建shell脚本行2:
echo ALL_ARGUMENTS='"$@"' >> note.sh

创建shell脚本行3:
echo 'echo "$ALL_ARGUMENTS" >> ~/collectednotes.md' >> note.sh

如果您打开note.sh,它将如下所示:

#!/bin/sh
ALL_ARGUMENTS="$@"
echo "$ALL_ARGUMENTS" >> ~/collectednotes.md

使note.sh可执行:
chmod +x note.sh

启动launchy并点击右上角的齿轮图标进行设置。如果需要与Windows的launchy保持一致,请将launchy热键设置为 Alt + Space 。如果您收到键盘快捷方式冲突消息,就像我在Debian上使用Xfce一样,首先转到设置,窗口管理器,键盘选项卡,然后清除 Alt + Space 作为快捷方式窗口操作菜单。

接下来在launchy设置中,转到插件标签并启用插件Runner。单击+按钮并创建新的Runner自定义命令,如下所示:
- 姓名:note
- 计划:/home/YOURUSERNAMEHERE/note.shlaunchy不喜欢~/note.sh的计划路径,因此需要使用带有用户名的特定路径)
- 参数:'$$'

点击“目录”标签,然后点击Rescan Catalog以防万一。点击OK关闭launchy设置。

现在让我们测试一下 - 使用 Alt + Space 或您的热键启动launchy - 键入note(您可能需要在首次运行时等待10秒左右。当您看到文本时,您会知道事情是预期的那样"注意"带有橙色/黄色图标包含一个人的轮廓。)
- 点击标签
- 输入一些文本(不需要单引号或双引号或转义),例如:Remember to donate at least $3 to Josh at Launchy https://www.launchy.net/donate.php
- 点击输入

现在打开collectednotes.md以确认文本已被捕获。

其余问题似乎是处理单引号和双引号。例如,请考虑以下注释:
I don't know what I'd do without Launchy.

collectednotes.md中产生以下结果:
I dont know what Id do without Launchy.

或者:
Would David Allen like universal text capture from anywhere in Linux? My bet is "yes!"

collectednotes.md中的以下结果:
Would David Allen like universal text capture from anywhere in Linux? My bet is \yes!\

单引号和/或双引号输入launchy并不能解决问题。请注意launchy的{​​{1}} Runner自定义插件构建组件是此难题的一部分。

我会向任何可以调整此过程的人(通过'$$'和/或note.sh插件设置)给出答案,以便妥善处理所有特殊字符。也许这会为用户输入添加适当的转义,例如launchy

正确处理正确字符处理的理由是,此过程对于从网页复制和记录随机文本块非常有用,但如果单引号等常见字符未按预期处理,则系统的可信度会大大降低