Які корисні налаштування .screenrc?


54

В основному, як деякі мої власні, які я розмістив нижче. Я шукаю додаткову функціональність на екрані програми. По крайней мере, подивіться на останній рядок фантастичної "панелі меню" внизу екранного сеансу.

## gyaresu's .screenrc 2008-03-25
# http://delicious.com/search?p=screenrc

# Don't display the copyright page
startup_message off

# tab-completion flash in heading bar
vbell off

# keep scrollback n lines
defscrollback 1000

# Doesn't fix scrollback problem on xterm because if you scroll back
# all you see is the other terminals history.
# termcapinfo xterm|xterms|xs|rxvt ti@:te@

# These will let you use 
bind -c selectHighs 0 select 10 #these three commands are 
bind -c selectHighs 1 select 11 #added to the command-class
bind -c selectHighs 2 select 12 #selectHighs
bind -c selectHighs 3 select 13
bind -c selectHighs 4 select 14
bind -c selectHighs 5 select 15


bind - command -c selectHighs   #bind the hyphen to 
                                #command-class selectHighs 


screen -t rtorrent  0   rtorrent    
#screen -t tunes        1   ncmpc --host=192.168.1.4 --port=6600 #was for connecting to MPD music server.
screen -t stuff     1
screen -t irssi     2   irssi
screen -t dancing   4       
screen -t python    5   python
screen -t giantfriend   6   these_are_ssh_to_server_scripts.sh
screen -t computerrescue    7   these_are_ssh_to_server_scripts.sh
screen -t BMon      8   bmon -p eth0
screen -t htop      9   htop
screen -t hellanzb  10  hellanzb
screen -t watching  3   
#screen -t interactive.fiction  8
#screen -t hellahella   8   paster serve --daemon  /home/gyaresu/downloads/hellahella/hella.ini 

shelltitle "$ |bash"

# THIS IS THE PRETTY BIT
#change the hardstatus settings to give an window list at the bottom of the                                                                        
##screen, with the time and date and with the current window highlighted                                                                            
hardstatus             alwayslastline                                                                                                                          
#hardstatus string '%{= mK}%-Lw%{= KW}%50>%n%f* %t%{= mK}%+Lw%< %{= kG}%-=%D %d %M %Y %c:%s%{-}'
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'

Відповіді:


22

Для тих, хто хоче менш виразний спосіб отримати гарний екран, я від душі рекомендую byobu (раніше називався екранними профілями). Він надає вам гарний набір матеріалів за замовчуванням у нижній частині екрана - нижній рядок містить різні зручні відомості про стан, а другий з нижнього рядка містить список ваших екранів. Все це можна налаштувати в приємне меню з простими нумераціями, натиснувши F9.

Функціональні клавіші відображені в загальних операціях:

  • F2 - створити нове вікно
  • F3 - Перехід до попереднього вікна
  • F4 - Перехід до наступного вікна
  • F5 - Перезавантажити профіль
  • F6 - Відхилення від сеансу
  • F7 - Введіть режим прокрутки
  • F8 - Переглянути всі клавіші
  • F9 - Налаштування профілів екрана
  • F12 - Блокуйте цей термінал

Дивіться цю статтю для підручника та скріншотів .

Byobu знаходиться у сховищах ubuntu від кармічного (9.10). У розквіті його називали екранними профілями. До цього він може бути встановлений з цієї програми на цій сторінці завантаження . Він широко упакований для інших сучасних дистрибутивів.

Це залежить від python, але як тільки ви налаштували bybu так, як вам подобається, ви можете змусити його генерувати кулю дьогтю, що містить усе необхідне для відтворення екрана на іншому комп'ютері за допомогою byobu-export .


Екрани-профілі є приголомшливими . Я збирався відповісти тим же.
jtimberman

12

Я також використовую досить задіяну комбінацію ліній підписів / жорстких даних, щоб імітувати ефект випадаючих вкладок (лінія заголовків є суцільним сірим кольором, а поточна вкладка в жорсткому стані того ж кольору).

У мене також є екран моєї оболонки, який повідомляє, що таке поточне ім'я процесу та в якому каталозі я перебуваю, тому імена моїх вкладок залишаються в курсі того, що я роблю в кожній вкладці. Це дуже важливо для запам'ятовування того, що я роблю, де не переглядаючи всі свої відкриті вкладки.

 # don't use the hardstatus line for system messages, use reverse video instead
 # (we'll be using it for the list of tab windows - see hardstatus alwayslastline
 # below)
 hardstatus off

 # use the caption line for the computer name, load, hstatus (as set by zsh), & time
 # the caption line gets repeated for each window being displayed (using :split),
 # so we'll use color cues to differentiate the caption of the current, active
 # window, and the others.
 #    always                  - display the caption continuously.  Since
 #                              hardstatus is 'alwayslastline', it will be on the
 #                              next to last line.
 #    "%?%F"                  - if (leading '%?') this region has focus ('%F') 
 #                              (e.g. it's the only region being displayed, or,
 #                              if in split-screen mode, it's the currently active
 #                              region)
 #      "%{= Kk}"               - set the colorscheme to blac[k] on grey (bright blac[K]),
 #                                with no other effects (standout, underline, etc.)
 #    "%:"                    - otherwise ('%:' between a pair of '%?'s)
 #      "%{=u kR}"              - set the colorscheme to [R]ed on blac[k], and
 #                                underline it, but no other effects (bold, standout, etc.) 
 #    "%?"                    - end if (trailing '%?')
 #    "  %h "                 - print two spaces, tthne the [h]ardstatus of the
 #                              current tab window (as set by zsh - see zshrc) and
 #                              then another space.
 #    "%-024="                - either pad (with spaces) or truncate the previous
 #                              text so that the rest of the caption string starts
 #                              24 characters ('024') from the right ('-') edge of
 #                              the caption line.
 #                              NOTE: omitting the '0' before the '24' would pad
 #                              or truncate the text so it would be 24% from the
 #                              right.
 #    "%{+b}                  - add ('+') [b]old to the current text effects, but
 #                              don't change the current colors.
 #    " %C:%s%a %D %d %M %Y"  - print the [C]urrent time, a colon, the [s]econds,
 #                              whether it's [a]m or pm, the [D]ay name, the [d]ay
 #                              of the month, the [M]onth, and the [Y]ear.
 #                              (this takes up 24 characters, so the previous
 #                              pad/truncate command makes sure the clock doesn't
 #                              get pushed off of the caption line)
 #    "%{= dd}"               - revert to the [d]efault background and [d]efault
 #                              foreground colors, respectively, with no ('= ')
 #                              other effects.
 #  other things that might be useful later are
 #    " %H"                   - print a space, then the [H]ostname.
 #    "(%{.K}%l%{-}):"        - print a '(', then change the text color to grey
 #                              (aka bright blac[K]), and print the current system
 #                              [l]oad.  Then revert to the previous colorscheme
 #                              ('%{-}') and print a close ')' and a colon.
 #                              NOTE: the load is only updated when some other
 #                              portion of the caption string needs to be changed
 #                              (like the seconds in the clock, or if there were a
 #                              backtick command)
 #    "%0`"                   - put the output of a backtick command in the line
 #    "%-024<"                - don't pad, just truncate if the string is past 24
 #                              characters from the right edge
 #    "%-="                   - pad (with spaces) the previous text text so that
 #                              the rest of the caption string is justified
 #                              against the right edge of the screen.
 #                              NOTE: doesn't appear to truncate previous text.
 caption always           "%?%F%{= Kk}%:%{=u kR}%?  %h %-024=%{+b} %C%a %D %d %M %Y%{= db}"
 # use the hardstatus line for the window list
 #    alwayslastline      - always display the hardstatus as the last line of the
 #                          terminal
 #    "%{= kR} %-Lw"      - change to a blac[k] background with bright [R]ed text,
 #                          and print all the tab [w]indow numbers and titles in
 #                          the [L]ong format (ie with flags) upto ('-') the
 #                          current tab window
 #    "%{=b Kk} %n%f %t " - change to grey (bright blac[K]) background with
 #                          [b]old blac[k] text, with no other effects, and print
 #                          the [n]umber of the current tab window, any [f]lags it
 #                          might have, and the [t]itle of the current tab window
 #                          (as set by zsh - see zshrc).
 #                          NOTE: the color match with the caption line makes it
 #                          appear as if a 'tab' is dropping down from the caption
 #                          line, highlighting the number & title of the current
 #                          tab window.  Nifty, ain't it)
 #    "%{-}%+Lw "         - revert to the previous color scheme (red on black)
 #                          and print all the tab [w]indow numbers and titles in
 #                          the [L]ong format (ie with flags) after ('+') the
 #                          current tab window.
 #    "%=%{= dd}"         - pad all the way to the right (since there is no text
 #                          that follows this) and revert to the [d]efault
 #                          background and [d]efault foreground colors, with no
 #                          ('= ') other effects.
 hardstatus alwayslastline "%{= kR} %-Lw%{=b Kk} %n%f %t %{-}%+Lw %=%{= dd}"

Ось ось мої налаштування zshrc, щоб розповісти екрану про те, що я роблю на кожній вкладці.

# ~/.zshrc
# if using GNU screen, let the zsh tell screen what the title and hardstatus
# of the tab window should be.
if [[ $TERM == "screen" ]]; then
  _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^~$USER/~/"'

  # use the current user as the prefix of the current tab title (since that's
  # fairly important, and I change it fairly often)
  TAB_TITLE_PREFIX='"`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"'
  # when at the shell prompt, show a truncated version of the current path (with
  # standard ~ replacement) as the rest of the title.
  TAB_TITLE_PROMPT='$SHELL:t'
  # when running a command, show the title of the command as the rest of the
  # title (truncate to drop the path to the command)
  TAB_TITLE_EXEC='$cmd[1]:t'

  # use the current path (with standard ~ replacement) in square brackets as the
  # prefix of the tab window hardstatus.
  TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "'
  # when at the shell prompt, use the shell name (truncated to remove the path to
  # the shell) as the rest of the title
  TAB_HARDSTATUS_PROMPT='$SHELL:t'
  # when running a command, show the command name and arguments as the rest of
  # the title
  TAB_HARDSTATUS_EXEC='$cmd'

  # tell GNU screen what the tab window title ($1) and the hardstatus($2) should be
  function screen_set()
  {
    # set the tab window title (%t) for screen
    print -nR $'\033k'$1$'\033'\\\

    # set hardstatus of tab window (%h) for screen
    print -nR $'\033]0;'$2$'\a'
  }
  # called by zsh before executing a command
  function preexec()
  {
    local -a cmd; cmd=(${(z)1}) # the command string
    eval "tab_title=$TAB_TITLE_PREFIX$TAB_TITLE_EXEC"
    eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX$TAB_HARDSTATUS_EXEC"
    screen_set $tab_title $tab_hardstatus
  }
  # called by zsh before showing the prompt
  function precmd()
  {
    eval "tab_title=$TAB_TITLE_PREFIX$TAB_TITLE_PROMPT"
    eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX$TAB_HARDSTATUS_PROMPT"
    screen_set $tab_title $tab_hardstatus
  }
fi

10

Найбільш корисна настройка екрана, IMHO, - це змінити модифікаційний ключ на щось інше, ніж Ca. Це дуже важливо з'їденого ключа (перейдіть на початок рядка за всіма підказками читання рядків та в emacs). Я використовую Cz, оскільки мені потрібно призупиняти програми набагато рідше, ніж мені потрібно щось редагувати на початку рядка.

Чарівне слово:

escape ^za

1
Я встановив міну на ctrl-K, оскільки це найменш використовуваний ключ ctrl в додатках, які я використовую. ^ A надто корисно в bash / readline, щоб пожертвувати.
cas

1
Щоб перевірити, що ви зіткнулися, ви можете проконсультуватися на superuser.com/questions/120333/… (про що я запитав це на увазі).
Хаміш Даунер

2
FYI, Якщо ви хочете залишити Ca як клавішу модератора, Ca a перейде до початку рядка. На це мені знадобився певний час.
Кумер

9

У мене часто працює більше 10 вікон і хотів спосіб їх вибору. Я дізнався, як налаштувати Ca Shift + 0 до 9 для вибору вікон від 10 до 19.

bind  ! select 11
bind  @ select 12
bind \# select 13
bind  $ select 14
bind  % select 15
bind \^ select 16
bind  & select 17
bind  * select 18
bind  ( select 19
bind  ) select 10

Зверніть увагу на втечі на # і ^.


6

Хворі повноекранні програми, такі як vim, що залишився в буфері прокрутки після закриття їх? Чи не було б чудово, якби вони повністю пішли так само, як це роблять, коли ви не працюєте з екраном? Спробуйте помістити це у свій файл ~ / .screenrc ...

altscreen on

2

Я використовую Ctrl + Alt + Ліворуч і Ctrl + Alt + Вправо для перемикання між вікнами екрана. Для свого каналу IRSSI я використовую Alt + Ліворуч та Alt + Право, а для перемикання робочої області GNOME використовую Ctrl + Alt + Shift + Вліво / Вправо. Це здається складним, але насправді це працює дуже добре.

Кодові символи для терміналу GNOME відрізняються від символьних кодів при з'єднанні через PuTTy, тому мені довелося дублювати записи. Ви можете скористатися cat> / dev / null, щоб дізнатися відповідні коди символів для вас.

#     KEYBOARD SHORTCUTS    #
# execute 'cat > /dev/null' to see the character codes

# Change Escape Combination to Ctrl+f (Ctrl+a is too useful to lose)
escape ^Ff

# PREVIOUS WINDOW
# Ctrl + Alt + Left from gnome-terminal
bindkey ^[[1;7C prev

# Ctrl+Alt+Left from putty
bindkey ^[^[[D prev

# NEXT WINDOW
# Ctrl + Alt + Right from gnome-terminal
bindkey ^[[1;7D next

# Ctrl+Alt+Right from putty
bindkey ^[^[[C next

1

Команда backtick є досить плавкою. Про це читайте на екрані man. Я використовую його так:

backtick 1 15 15 $HOME/bin/cpuusage
# now add '%1`%% CPU' to your hardstatus string. Result is like 38.4% CPU.

Мій скрипт cpuusage для Linux та Mac:

#!/bin/bash
if [[ $(uname) == "Darwin" ]]; then
    top -i1 -l2 -n0|awk '/CPU/{i+=1; gsub(/%/,"",$0);p=substr(sprintf("%3.2f",$8+$10),0,4);if(i==2){printf "%g", p}}'
  else
    awk 'NR==1 {p=substr(sprintf("%3.2f", ($2+$3)/($2+$3+$4+$5)*100),0,4); printf "%g", p;}'</proc/stat
fi

0

Я також не можу жити без рядка меню. Одне, що мені не подобається вкладати в меню, яке багато людей, - це час; це заважає прокрутці PuTTY назад не залишатися прокрученою назад (оскільки це вважається оновленням екрана)


1
Ви можете використовувати вбудований прокрутку екрану? C-A [за замовчуванням переведе вас у режим копіювання та дозволить вам переходити до поточної вкладки за допомогою команд клавіатури, як текстовий редактор?
Муралі Суріар

@murail я вважаю за краще використовувати колесо прокрутки у своїй миші, коли я використовую шпаклівку; просто звичка. @mikeage - я виявив, що якщо позбутися секунд на годиннику, це робить буфер прокрутки на екрані досить добре працювати. Звичайно, у мене в основному є годинник на екрані, щоб уникнути дурних непрацюючих очікувань, які ми маємо на наших проклятих брандмауерах. гррр.
chris

0

У мене F11 і F12 встановлені для переходу по вікнах, це дозволяє швидше переміщатися між вікнами, особливо для Windows> 10

# Bind F11 and F12 (NOT F1 and F2) to previous and next screen window
bindkey -k F1 prev
bindkey -k F2 next

0

Якщо ви використовуєте urxvt, наступне дозволить CTRL+LEFTі CTRL+RIGHTбуде використовуватися для переходу до вікна попередньої і наступної вкладки:

bindkey "^[Od" prev  # ctrl-left
bindkey "^[Oc" next  # ctrl-right

Повторне підключення до сеансу віддаленого екрана, який завжди повинен бути запущений або негайно створений:

bind V screen -t MYTABNAME ssh -t MYUSERNAME "screen -x main || screen -R -S main"

Вимкнення керування потоком за замовчуванням дозволяє правильно використовувати CTRL+Rв rtorrent:

defflow off

Якщо запускається rtorrent як демон із власним обліковим записом користувача, цей .screenrc може бути корисним:

vbell off
startup_message off
escape ^Rr
screen -t rtorrent rtorrent
multiuser on
acladd YOURUSERNAME
defflow off

0

На основі відповідей на те, як змусити екран Gnu завантажувати мій bash .profile , я додам:

shell -$SHELL

вашим, ~/.screenrcщоб зробити screenпочаткові оболонки для входу. Це дуже корисно, якщо ви хочете, щоб вони були ~/.bash_profileвиконані, коли ви використовуєте оболонку наскрізь screen.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.