问题标签 [less-unix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
shell - pager (less) -- 获取当前滚动位置?
我正在git diff
使用 tmux 编写脚本输出的显示(嗯,它只是程序):一旦检测到文件系统更改,shell 脚本就会执行tmux send-keys q enter C-l "git diff" enter
,它可以有效地刷新git diff
视图。
您可能会认为这类似于iTerm 的 coprocesses提供的功能。
问题是,我希望它在刷新时滚动回它所在的位置。
使用 tmux 的原因之一是窗口实际上是一个完全正常的交互式终端会话,可以正常交互以滚动查看完整输出。
但我想以某种方式获得滚动位置。
假设我想实际对终端窗口本身的文本内容进行计算,就像 iTerm2 的协同进程一样,但是我可以在 Linux 上使用它(通过 ssh)。tmux 提供这种能力吗?
bash - 使用自定义 LESSOPEN 着色脚本减少拖尾
我编写了以下脚本来从日志文件中挑选关键字并突出显示术语:
它工作正常,直到我尝试跟随/减少尾随(Shift+F),此时它无法尾随任何新的日志行。任何想法为什么?
linux - 在 OSX 上与 git 一起使用时,lesskey 配置不会被更少的寻呼机使用
这在 Linux 中运行良好,所以我想知道这是否是 Mac 运行的 less 版本的问题。
我~/.lesskey
设置了相同的文件,lesskey
在两个地方都成功运行,结果~/.less
是相同的:
和
键绑定也适用于man
Mac。只有当我运行 git 相关命令时,才会恢复到常规键绑定。
python - 如何显示超出范围的 ascii 字符?
我使用 PuTTY 连接到 Linux 机器。
在 Linux 机器上,我正在运行一个 python 脚本,它获取一个字符列表并按顺序打印每个字符及其索引。
我列表中的某些字符不在可打印的 ascii 字符范围内。这些不规则字符正在破坏我的输出。有时它们根本不会出现,而有时它们实际上会删除大量有效文本。
我想我可以通过关闭缓冲来纠正这个问题,但是当我使用 python -u 标志运行脚本时问题仍然存在。
有趣的是,当我将输入传递给较少的阅读器时,不会发生此问题。在 less 中,不规则字符显示如下:<A9>
、<A7>
、^V
、^@
等。没有丢失任何文本块。
我不确定我的问题出在哪里。有没有办法配置我的终端,以便非管道输出仍会显示不规则字符?
linux - linux less 命令搜索不可见字符
我想在 Linux 中使用 less 命令搜索一个不可见字符(控制字符,例如 0x05)。我发现这个字符在 less
中显示为^E 。我无法直接使用字符"^E"来搜索它。既不ctrl+vctrl+e是在 VI 中,也不是只是搜索/\0x05
。
bash - 将交互式命令的输出通过管道传输到 less
我想做类似的事情
openssl
需要来自 的密码stdin
。less
当涉及到这一切时,这一切都搞砸了。
有没有办法从交互式命令中获取输出(例如openssl
要求输入密码)并将输出通过管道传输到less
?
还是使用 bash 脚本有更好的技术?
python - Python Fabric:远程执行交互式程序,例如less?
当我执行类似的事情时:
在 fabric 中,它在行前面加上 Out: 并且与它的交互不能按预期工作。
如果我运行它:
输出没有预先添加任何内容,我实际上可以将其通过管道传输到 less 本地,例如:
但是我不确定是否建议这样做,因为我觉得它可能会对远程资源造成负担,因为 cat 将不断地通过 ssh 管道返回。此外,当我在整个文件被 cat'd 之前快速减少(它可能超过 1GB)时,我得到一个代理管道错误。
促进这一点的推荐方法是什么?我应该直接使用 ssh 吗:
vim - 如何在vim上的文件末尾自动退出?
我尝试vim/less.sh
使用语法高亮作为寻呼机,但有一个小问题:显示小文件时,vim 使用“全屏”并等待用户的命令。
我可以让 vim 表现得像一个less --quit-at-eof
吗?
换句话说,如果显示的文件有几行长度,有没有办法自动退出 vim?
我找到了一个带有 shell 脚本的解决方案:按 计数文件行wc -l
,然后获取终端高度,如果大小很小 - 使用自定义 vim 配置文件,其中自定义配置文件以:quit
字符串结尾。
然而,这个解决方案看起来很糟糕,并且在小文件结束后留下了额外的行~
,所以我正在寻找更好的方法来做到这一点。
linux - 有没有办法在手册页中查找标志?
我试图想出一种在手册页中找到特定标志的方法。通常,我输入“/”来搜索某些内容,然后输入“-Werror”之类的内容来查找特定标志。问题是虽然有一些手册页(gcc 是现在激励我的一个)在其文本中引用了很多标志,所以出现了很多。
这没什么大不了的,但也许可以做得更好。我想寻找类似 '-O\n' 的东西,但它没有用(可能是因为 man 程序不使用 C 转义?)然后我尝试了类似man gcc | grep $'-O\n'
的东西,因为我记得一个单一的 -以美元符号开头的带引号的字符串具有 bash 解释常见的 C 转义...它不起作用,grep 回显了整个手册页。
这就是把我带到这里的原因:为什么?或者更确切地说,可以这样做吗?
git - OS X 终端中的 `git` 和 `less` 集成:防止将 `less` 的输出写入 tty
在 OS X 终端中,当less
它自己或被其他程序(如 )调用时man
,它的输出不会在我们退出后写入 ttyless
。例如,如果我们运行less README
,我们将被临时定向到一个屏幕,其中包含类似
按下 后q
, 的输出less
会消失,我们最终会得到类似
但是,如果less
被调用git
(在我的情况下,寻呼机git
设置为),情况并非如此。的输出总是在退出后写入 tty。例如,如果我们运行,如果日志很短,甚至不会被调用;如果日志长于一个屏幕,那么我们将像往常一样暂时被引导到输出屏幕:less -r
less
git log --oneline
less
less
在按下 之后q
,整个内容都会写入 tty,所以我们最终会得到类似
那么有可能改变这种行为吗?我的意思是,是否可以进行配置git
,使其始终将输出传输到 less(无论输出是长还是短),并且在less
退出后在 tty 中什么都没有?谢谢。