-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscreenrc
More file actions
282 lines (221 loc) · 8.14 KB
/
screenrc
File metadata and controls
282 lines (221 loc) · 8.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# -*- shell-script -*-
# cvs management since 2005/05/17
# $Id: .screenrc,v 1.9 2008/06/17 01:36:39 ogata Exp $
# $Source: /var/cvs/dot/daichi/.screenrc,v $
# TODO:
# 時刻入れる
# 絵文字活用
# 縦分割生かす
# tmux を意識
# 参考
# http://yskwkzhr.blogspot.jp/2010/11/screenrc.html
escape ^z^z
defencoding utf8
defscrollback 100000
# F
# clear scrollback buffer
bind ^F eval 'scrollback 0' 'scrollback 100000' 'echo "scrollback buffer cleared"'
bind F fi
bind f flow
vbell on
autodetach on
startup_message off
zombie kr # k: destory window, r: resurrect window
# emulate .logout message
pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
# autoaka testing
# shellaka '> |tcsh'
# shellaka '$ |sh'
# set every new windows hardstatus line to somenthing descriptive
# defhstatus "screen: ^En (^Et)"
################
#
# xterm tweaks
#
#xterm understands both im/ic and doesn't have a status line.
#Note: Do not specify im and ic in the real termcap/info file as
#some programs (e.g. vi) will not work anymore.
termcap xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
#80/132 column switching must be enabled for ^AW to work
#change init sequence to not switch width
termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
# Make the output buffer large for (fast) xterms.
termcapinfo xterm* OL=10000
# tell screen that xterm can switch to dark background and has function
# keys.
termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
termcapinfo xterm 'kh=\E[1~:kI=\E[2~:kD=\E[3~:kH=\E[4~:kP=\E[H:kN=\E[6~'
# special xterm hardstatus: use the window title.
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
# emulate part of the 'K' charset
termcapinfo xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'
# xterm-52 tweaks:
# - uses background color for delete operations
termcapinfo xterm be
################
#
# wyse terminals
#
#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff")
#essential to have it here, as this is a slow terminal.
termcapinfo wy75-42 xo:hs@
# New termcap sequences for cursor application mode.
termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J
################
#
# other terminals
#
#make hp700 termcap/info better
termcapinfo hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
# Extend the vt100 desciption by some sequences.
termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
termcapinfo kterm XT
################
#
# keybindings
#
# disables vbell toggle binding to use ^G as cancel.
# "vbell on" always
bind ^G
#remove some stupid / dangerous key bindings
bind k
bind ^k
bind .
bind ^\
bind \\
bind ^h
bind h
bind K kill
bind '}' history
# number
bind n colon 'number '
bind N colon 'number '
# subcommand: c and t
bind c colon 'screen -t '
bind ^c screen
bind ^t time
# encoding
bind ^u eval 'encoding utf8' 'info'
bind ^e eval 'encoding eucjp' 'info'
bind E colon 'encoding '
#bind u eval 'encoding utf8' '!!!echo "LANG=ja_JP.utf8; export LANG"' 'info'
#bind e eval 'encoding eucjp' '!!!echo "LANG=ja_JP.eucJP; export LANG"' 'info'
#bind C eval split focus screen focus
# switch focus to other region(like vi)
# orverride default `k'(kill), `t'(time), `b'(break) mappings.
bind j focus down
bind k focus up
bind h focus left
bind l focus right
bind t focus top
bind b focus bottom
# l: redisplay -> right
# L: redisplay
bind L redisplay
# continuous switch focus to other region(like vi)
bind ^j eval 'focus down' 'command -c cfocus'
bind ^k eval 'focus up' 'command -c cfocus'
bind ^h eval 'focus left' 'command -c cfocus'
bind ^l eval 'focus right' 'command -c cfocus'
bind -c cfocus ^j eval 'focus down' 'command -c cfocus'
bind -c cfocus ^k eval 'focus up' 'command -c cfocus'
bind -c cfocus ^h eval 'focus left' 'command -c cfocus'
bind -c cfocus ^l eval 'focus right' 'command -c cfocus'
bind -c cfocus ^t eval 'focus top' 'command -c cfocus'
bind -c cfocus ^b eval 'focus bottom' 'command -c cfocus'
# swap region to neighbour's
# orverride default `W'(width) mapping.
# ^z W [N|P]
bind W eval 'command -c swap' 'echo "swap region to: [N]ext [P]rev"'
bind -c swap N eval 'select -' 'focus down' 'other' 'focus up' 'other' 'focus down'
bind -c swap P eval 'select -' 'focus up' 'other' 'focus down' 'other' 'focus up'
# continuous resize region
# orverride default `r'(wrap) mapping.
# ^z r [jkJK=nx]
bind r eval 'echo "cresize mode"' 'command -c cresize'
bind -c cresize j eval 'resize +1' 'command -c cresize'
bind -c cresize k eval 'resize -1' 'command -c cresize'
bind -c cresize J eval 'resize +10' 'command -c cresize'
bind -c cresize K eval 'resize -10' 'command -c cresize'
bind -c cresize h eval 'resize -v +1' 'command -c cresize'
bind -c cresize l eval 'resize -v -1' 'command -c cresize'
bind -c cresize H eval 'resize -v +10' 'command -c cresize'
bind -c cresize L eval 'resize -v -10' 'command -c cresize'
bind -c cresize = eval 'resize =' 'command -c cresize'
bind -c cresize n eval 'resize min' 'command -c cresize'
bind -c cresize x eval 'resize max' 'command -c cresize'
# continuous switch to other window
# ^z [^n|^p] ...
bind ^N eval 'next' 'command -c cselect'
bind ^P eval 'prev' 'command -c cselect'
bind -c cselect ^N eval 'next' 'command -c cselect'
bind -c cselect ^P eval 'prev' 'command -c cselect'
bind -c cselect ^K eval 'kill' 'command -c cselect'
#bind R resize
bind R source ~/.screenrc
bind o other
# refuses yet another hack in rpm packaged screenrc.
# both ] and ^] does write the paste (default unnamed) buffer.
bind ^] paste .
# list of all windows is displayed in the blank window(-b) for visual window selection.
# override default `w'(windows) mapping.
bind w windowlist -b
bind ^W windowlist -b -m # sorting by most-recentry-used list.
# switch to window
bind s select
bind b select
# grouping
bind g colon 'group '
# shortcut listed ssh
bind @ eval 'select 0' 'stuff "phs "'
#bindkey -m ' ' eval "stuff ' '" writebuf "exec sh -c 'pbcopy < /tmp/screen-exchange'" "echo 'copy and write to pasteboard'"
# move cursor to begining of scrollback buffer(and move to the leftmost column of the window top)
bindkey -m ;b stuff "g/:\015\006\002"
# 2005/03/18
#backtick 0 0 0 uim-fep-tick
#hardstatus alwayslastline "%H[%n]:%0` [%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<]"
#hardstatus alwayslastline "%H[%n]: [%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<]"
#bind j exec | uim-fep -S
#bind k eval 'exec cat' kill redisplay
#bind ^j exec | uim-fep -S
#bind ^k eval 'exec cat' kill redisplay
# Yet another hack:
# Prepend/append register [/] to the paste if ^a^] is pressed.
# This lets me have autoindent mode in vi.
register [ "\033:se noai\015a"
register ] "\033:se ai\015a"
################
#
# default windows
#
#screen -t local 0
#screen -t root 1 sudo su -
#screen -t liece 2 emacs -nw -e liece
#screen -t messages 2 sudo tail -f /var/log/messages
# caption always "%3n %t%? @%u%?%? [%h]%?"
caption always '%?%F%{= yk}%:%{= Kk}%?%2n%f%07=%t%='
#screen -X caption always '%?%F%{= mk}%:%{= Kk}%?%2n%f%07=%t%=' # caption config: remote
# hardstatus alwaysignore
# hardstatus alwayslastline "%w"
#hardstatus alwayslastline "%H[%n]: [%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<]"
hardstatus alwayslastline "[%m/%d %02c] %H[%n]: [%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<] %-17<%=(%l)"
#hardstatus alwayslastline '%m/%d %02c %{= .g}%H%{-} %L=%-w%45L>%{=u g.}%n %t%{-}%+w %-17<%=%{= .y}(%l)'
# koreha betsuni iranai kana.
# bind = resize =
# bind + resize +4
# bind - resize -4
# bind _ resize max
# attrcolor u "-u b"
# attrcolor b "R"
# our xterm has colors! (rxvt, too)
termcap xterm* 'AF=\E[3%dm:AB=\E[4%dm'
terminfo xterm* 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'
termcap kterm* 'AF=\E[3%dm:AB=\E[4%dm'
terminfo kterm* 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'
termcap vt100 'AF=\E[3%dm:AB=\E[4%dm'
terminfo vt100* 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'