编辑:启用鼠标的问题vim似乎特定于gnome-terminal(版本 3.4.1.1-1;我使用的是 gnome 3 后备模式)。如果我运行xterm,vim默认情况下禁用鼠标支持,我可以选择启用它(:set mouse=a,我从不这样做)和禁用它(:set mouse=)。相比之下,当我运行vimin 时gnome-terminal,默认情况下启用鼠标支持并且无法禁用它(:set mouse=无效)。有没有更换终端模拟器的解决方案?
我想在vim. 我正在运行vim版本 2:7.3.547-3 到gnome-terminal版本 3.4.1.1-1。以下命令,无论是直接在vim中执行还是添加到我的.vimrc文件中,都无法禁用鼠标支持:
set mouse =
set mouse =""
Run Code Online (Sandbox Code Playgroud)
基于阅读 vim 手册和在线帖子,这些命令中的一个或两个应该可以工作。特别是,vim 手册说明了以下内容
'mouse'                 string  (default "", "a" for GUI, MS-DOS and Win32)
    The mouse can be enabled for different modes:
            n       Normal mode
            v       Visual mode
            i       Insert mode
            c       Command-line mode …Run Code Online (Sandbox Code Playgroud) 我使用tre-agrep (手册页),的实施方案agrep (手册页),来执行近似模式匹配。此实用程序根据Levenshtein distance搜索匹配项,用户可以配置应用于替换、插入或删除编辑的惩罚。
但是,我想在查询的长度上应用不同的权重,即查询开头(左端)的删除权重比右侧的要低。man此实用程序的页面并未表明这种控制级别是可能的。
是否有其他命令行工具可以实现近似匹配并更好地控制不匹配惩罚?
我最近将我的系统升级到 GNOME 3。在以前版本的 GNOME 中,组合键Ctrl+ Alt+D会隐藏所有打开的窗口并显示桌面。此快捷方式与桌面的概念一起从 GNOME 3 中删除。然而,桌面隐喻确实存在于 GNOME 3“后备模式”(我正在使用)中。
我想恢复Ctrl+ Alt+D键盘快捷键。我知道至少有两种在 GNOME 中创建组合键的方法。一种是通过系统设置 > 键盘 > 快捷方式,另一种是通过gconf-editor> 应用程序 > metacity。从任一这些环境的,我可以配对的命令使用组合键Ctrl+ Alt+ D。问题是我不知道什么命令会触发“显示桌面”事件。有人可以启发我吗?
在 MUA mutt 的寻呼机视图中删除或保存一条消息后,程序将保持在寻呼机视图中并跳转到当前文件夹中的下一条消息。是否可以更改此默认行为,以便在删除或归档电子邮件后退出寻呼机模式并显示文件夹索引?
在尝试通过lprfrom将文本文件发送到打印机时xterm,内容已损坏无法识别,其原因最终被追溯到文件的编码。如果我改为使用iconv(eg, iconv -f utf-8 -t ascii//TRANSLIT)处理文本,则文件将正常打印。我遇到的另一个建议是设置文档格式(例如,lpr -o document-format=text/utf8),但这会返回错误lpr: Unsupported document-format "text/utf8"。我总是可以将lpr命令别名为包含处理iconv,但是CUPS/lpr系统中是否有更通用的本地 utf-8 支持方法?
编辑:我的操作系统是 Debian 8,我的窗口管理器是openbox(没有桌面环境)。我可以在 MacOS X 和 Debian7/Gnome3 系统中毫无问题地打印此文件。
从我当前的系统来看,我应该指出,即使在将字符编码从 UTF-8 更改为 ASCII 之后,换行符也不受lpr. 在iconvMacOS X 上重新编码和音译后,打印仍然正常工作(因此换行问题也是我当前系统特有的)。
我发现extglob在复合化合物中设置shell 选项会导致随后的 anti-globs 失败。是否需要在复合命令之外设置 shell 选项?我在 bash 手册页中没有看到此类要求的指示。
例如,以下脚本工作正常(打印a.0  a.1):
#!/bin/bash
touch a.0   a.1 \
      a.b.0 a.b.1
shopt -s extglob
ls "a."!(b*)
Run Code Online (Sandbox Code Playgroud)
但是,如果最后两行作为复合命令执行,脚本将失败并显示以下错误:
syntax error near unexpected token `('
`    ls "a."!(b*)'
Run Code Online (Sandbox Code Playgroud)
这是使用从 4.2 到 4.4 的 bash 版本和各种复合命令进行的测试:
(1) 有条件的—— if
#!/bin/bash
touch a.0   a.1 \
      a.b.0 a.b.1
if true; then
    shopt -s extglob
    ls "a."!(b*)
fi
Run Code Online (Sandbox Code Playgroud)
(2) 大括号—— { }
#!/bin/bash
touch a.0   a.1 \
      a.b.0 a.b.1
{
    shopt -s extglob
    ls …Run Code Online (Sandbox Code Playgroud) 如何以交互方式重命名muttMUA 中的 IMAP 文件夹?目前,如果我想更改文件夹名称,我会使用 gmail 网络浏览器界面,但这相当低效。中是否有与 unixmv命令等效的命令mutt?
当我在 google 上搜索此主题时,搜索结果与重命名本地 mutt 文件夹和文件有关,例如.muttrc.
当使用mpv通过帧以步骤(.步进向前和,步进向后),前向步进速率比向后步进速率要快得多。远期汇率是大约相同的视频帧速率(60fps的用于所讨论的视频,这是从一组使用的PNG图像的制备的MP4文件ffmpeg与libx264编码)而反向步进率约为1fps。有没有办法控制步进率?为什么远期/后退利率会如此不对称?如果 Linux 系统支持可变(或至少同样快)视频帧步进的替代视频播放器可用,请提供建议(在这方面mplayer并不比mpv这更好)。
我丢弃了一些消息而不阅读它们。然而,在删除上述邮件后,我很快就收到了垃圾桶中存在未读邮件的提醒。
有没有办法:
set beep_new在垃圾桶中发现新消息时禁用警报 ( );或者我想前者可以用垃圾文件夹钩子来实现,后者可以用宏来实现。但是,在后者的情况下,在将消息 ( Wn) 或整个线程 ( ^R)标记为已读后,所选条目可能会更改,也可能不会更改,具体取决于邮件在文件夹中的位置。
然后必须使用条件来确定如何通过使用条目导航命令来恢复选择。恢复选择后,可以删除该消息。根据官方文档,配置文件不支持条件,因此基于宏的解决方案可能涉及通过 shell 脚本进行管道传输。
也许我忽略了这个问题的更简单的解决方案?
当尝试格式化printf包含多字节字符的字符串的输出时,很明显printf不计算文字字符而是字节数,如果混合单字节和多字节字符,这会使格式化文本变得困难。例如:
$ cat script
#!/bin/bash
declare -a a b
a+=("0")
a+=("00")
a+=("000")
a+=("0000")
a+=("00000")
b+=("0")
b+=("??00")
b+=("??000")
b+=("??0000")
b+=("??00000")
printf "%-15s|\n" "${a[@]}" "${b[@]}"
$ ./script
0              |
00             |
000            |
0000           |
00000          |
0              |
??00       |
??000      |
??0000     |
??00000    |
Run Code Online (Sandbox Code Playgroud)
我发现了各种建议的解决方法(主要是使用另一种语言或实用程序来打印文本的包装器)。是否有任何本机 bash 解决方案?任何记录的printf 格式字符串似乎都没有帮助。locale在这种情况下,这些设置是否相关,例如,使用像 UTF-32 这样的固定宽度字符编码?