我最近开始在远程会话中使用屏幕.一个问题是emacs无法识别它的Ca,我不想将emacs Ca绑定到别的东西,因为我已经习惯了.
Google展示了使用〜/ .screenrc单独更改每个键绑定的方法,而不是如何全局更改键绑定.我希望所有的Ca都改变成别的东西.那可能吗?我有什么选择?
谢谢你的回答
ISO/IEC 2022定义了C0和C1控制代码.在C0组之间是熟悉的代码0x00和0x1f在ASCII,ISO-8859-1和UTF-8(例如ESC,CR,LF).
一些VT100终端仿真器(例如screen(1),PuTTY)也支持C1集.这些值之间0x80和0x9f(因此,例如,0x84向下移动光标的线).
我正在显示用户提供的输入.我不希望用户输入能够改变终端状态(例如移动光标).我目前正在过滤出C0集中的字符代码; 但是我想有条件地过滤出C1集,如果终端将它们解释为控制码.
有没有办法从数据库中获取此信息termcap?
我正在使用屏幕甚至在rvm 1.9.2之后并且拥有一个合适的.rvmrc我的服务器仍将使用jruby.
我的.screenrc包含shell#{SHELL} rvm info显示jruby.
好像rvm 1.9.2没有任何效果,但它在屏幕外工作正常.
我试图在最新版本的Cygwin 64位Windows Ultimate下运行屏幕(版本4.0),它不想工作.我使用"screen -d -m -S screen1"启动了一个新的屏幕会话.当我使用"screen -A -d -r screen1"之类的东西连接到它时,进程挂起.当我列出带有"screen -list"的屏幕时,它会将屏幕报告为"可能已死".
知道如何在我的环境中使用屏幕吗?
我想在Emacs术语模式缓冲区中运行GNU Screen.当我尝试这样做时,我收到一个错误:
$ screen
Cannot find terminfo entry for 'eterm-color'.
Run Code Online (Sandbox Code Playgroud)
此错误表明我应该安装eterm-color terminfo条目.我试图以两种方式做到这一点,两种方式都失败了.
第一次尝试是使用TERMINFO环境变量.
我的.bashrc:
export TERMINFO=~/.terminfo
Run Code Online (Sandbox Code Playgroud)
然后我做了:
$ mkdir -p ~/.terminfo/e/
$ cp /usr/local/Cellar/emacs/23.3a/share/emacs/23.3/etc/e/* ~/.terminfo/e/
Run Code Online (Sandbox Code Playgroud)
在术语模式缓冲区中,找不到eterm-color条目.它说它从TERMCAP而不是从实际文件中获得eterm-color.
$ infocmp
# Reconstructed via infocmp from file: TERMCAP
eterm-color,
am, mir, xenl,
colors#8, cols#138, it#8, lines#41, pairs#64,
bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kdch1=\E[3~, kend=\E[4~, khome=\E[1~, …Run Code Online (Sandbox Code Playgroud) 我在Screen/Tmux中使用Mysql的命令行客户端,来自OSX的Terminal.app中的Bash.当使用向上箭头重新显示以前运行的跨越多行的查询时,当光标位于终端的最后一行时,mysql命令历史记录中的命令被"截断"或截断.当我在Ubuntu工作站上使用相同的工具时,这种情况永远不会发生
以下是所发生情况的直观表示:
输入一些查询; 没错.
+-------------------------------------------+
|mysql> |
|mysql> |
|mysql> |
|mysql>select * from tables where legs = 4 a|
|nd colour = 'green'; |
+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
运行它,结果显示:
+-------------------------------------------+
|| 2 | ....... | ..... | |
|+---+---------+-------+ |
| x rows in set (0.00 sec) |
| |
|mysql> |
+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
按[向上箭头]重新显示上一个查询会让我:
+-------------------------------------------+
|| 2 | ....... | ..... | |
|+---+---------+-------+ |
| x rows in set (0.00 sec) |
| |
|nd colour = 'green'; |
+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
再次点击[向上箭头],我得到: …
我想从脚本中启动屏幕内的python脚本.我试过这个
screen -dmS gateway_monitor;screen -r gateway_monitor -p 0 -X '/usr/bin/python /root/Gateway.py'
Run Code Online (Sandbox Code Playgroud)
但是如果我之后重新连接到屏幕上,它只是空的,看起来根本没有执行任何操作.任何线索为什么这是我或如何实现我想要的?
我通过串口连接到开发板,如此...
$ screen /dev/ttyUSB0 9600
Run Code Online (Sandbox Code Playgroud)
我现在已连接到启动加载程序,它要求我以srec格式发送文件.我有文件,但如何通过屏幕会话发送?
我正在考虑将AirPlay功能添加到我的一个ViewControllers中.View Controller只显示一个UIWebView.我想要做的是添加一个按钮,将此内容镜像到Apple TV.我知道系统范围的镜像可以完成,但它不会填满整个屏幕,周围都是黑条.我一直在网上搜索,但我发现的大部分内容都是从iOS 5回来并且已经过时了.有人能指出我的教程或插入库的方向会有所帮助吗?我只需要在Apple TV上将一个视图的内容镜像为全屏.
到目前为止,这是我所做的,但我相信它只会创建第二个窗口,而不会在其上放置任何内容.
在AppDelegate中,我为它创建了一个属性:
@property (nonatomic, retain) UIWindow *secondWindow;
Run Code Online (Sandbox Code Playgroud)
在AppDelegate的didFinish方法中,我运行:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(handleScreenDidConnectNotification:)
name:UIScreenDidConnectNotification object:nil];
[center addObserver:self selector:@selector(handleScreenDidDisconnectNotification:)
name:UIScreenDidDisconnectNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
然后在AppDelegate中我有:
- (void)handleScreenDidConnectNotification:(NSNotification*)aNotification
{
UIScreen *newScreen = [aNotification object];
CGRect screenBounds = newScreen.bounds;
if (!self.secondWindow)
{
self.secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
self.secondWindow.screen = newScreen;
// Set the initial UI for the window.
}
}
- (void)handleScreenDidDisconnectNotification:(NSNotification*)aNotification
{
if (self.secondWindow)
{
// Hide and then delete the window.
self.secondWindow.hidden = YES;
self.secondWindow = …Run Code Online (Sandbox Code Playgroud) 我喜欢在bash中提供不同的提示,以便在我使用时快速识别我当前在哪台机器上工作ssh.我发现OSX Yosemite中的默认bash终端接受了大量的unicode字符,所以我设置了这些PS1:
Mac PS1
PS1=$'\n\n\xf0\x9f\x98\x88'" \t – \[\033[01m\]\u@\h\[\033[00m\]:\W > "
Run Code Online (Sandbox Code Playgroud)
覆盆子πPS1
PS1=$'\n\n\xf0\x9f\x98\xBA'" \t – \[\033[01m\]\u@\h\[\033[00m\]:\W > "
Run Code Online (Sandbox Code Playgroud)
不幸的是,GNU屏幕不能理解UTF-8字符:
即使在UTF-8模式下运行时也是如此 screen -U
知道如何解决这个问题吗?