Предлагаемая настройка для сверхлегкой текстовой среды программирования в Linux

Я ищу предложения для установки для моих конкретных потребностей. Я не делал много Linux с колледжа и хочу вернуться в него как хобби. У меня есть не слишком мощное оборудование (512 МБ оперативной памяти, одноядерный). Я хочу делать все с помощью текстовых оболочек и редакторов, таких как vim. Моя цель – никогда не прикасаться к мыши.

Мне нужно, чтобы сразу открывалось несколько оболочек, один из которых запускал веб-сервер, один запускал vim, один выполнял конвейер сборки приложений, другой – для специальных команд оболочки, таких как wget, grepping и untarring и т. Д. Мне нужно иметь возможность открывать новые оболочки и быстро переключаться между оболочками с помощью клавиатуры.

Но даже если я хочу несколько оболочек, мне не нужна графическая среда рабочего стола. Я никогда не хочу, чтобы у меня возникла соблазн использовать мышь; часть моей цели – заставить себя изучить способ командной строки выполнять различные задачи.

Я также хочу, чтобы иметь возможность использовать мой большой монитор, запускать vim с несколькими сотнями столбцов, провалившихся.

Это возможно?

  • Что означает в нижней части vim?
  • Есть ли плагин меню файла для vim (а не gVim), который создает текстовую систему меню графического интерфейса?
  • Сохранение с помощью CTRL-s в vim
  • Как выделить журналы с раскраской bash на vim?
  • vim latex: отключить quickfix
  • Автозаполнение от выхода grep
  • Как я могу искать в vim шаблон, который не чувствителен к регистру?
  • gvim pipe не читает zshrc при запуске с рабочего стола
  • 8 Solutions collect form web for “Предлагаемая настройка для сверхлегкой текстовой среды программирования в Linux”

    Я читал ваши вопросы несколько раз, прежде чем понял, что у меня определенно есть рекомендация для вас: vim with tmux: http://tmux.sourceforge.net/

    tmux – это «мультиплексор» экрана, который позволяет вам иметь несколько окон и панелей «внутри 1»,

    Он является преемником почтенной «экранной» программы, долгое время являющейся основным продуктом многих кли-кодеров. Одной из его оригинальных функций для победы над vim была возможность делать разбитые окна как вертикально, так и горизонтально. Однако экран продвинулся вперед и теперь может это сделать.

    Пример:

    введите описание изображения здесь

    Другая часть настройки, которую я бы рекомендовал, – хороший набор псевдонимов. Это упростит и упростит вашу типизацию и взаимодействие

    Некоторые из моих фаворитов показаны здесь в качестве примеров:

    alias gcv='git commit' alias gg='git grep ' # for searching (add parameter) alias gst='git status -sb' # I must use this 100 times a day!!! alias h='history | tail' alias hg='history | grep' # for searching my history (add parameter) alias l='ls -alFtrG' alias ls='ls --color=auto' alias mv='mv -i' alias p='pwd'# at least 200 times a day! so 2 chrs saved * 200 = 400 less characters to type ;) 

    Псевдонимы могут быть настроены в файле .bash_aliases, который вызывается из .bashrc с помощью: # Определений псевдонимов. если [-f ~ / .bash_aliases]; тогда . ~ / .bash_aliases fi

    Скорее всего, у вас уже есть этот код, так что просто ваш собственный файл .bash_aliases.

    Оба эти варианта работают на Mac, и это очень важно для меня (в основном для пользователя Ubuntu).

    Большинство людей, использующих tmux, перенаправляют ключи, чтобы упростить их. По умолчанию привязки не так уж хороши. Вот мои настройки:

    $ cat ~ / tmux.conf

     # mdd tmux settings bind r source-file ~/.tmux.conf \; display "Reloaded!" # Reload with ctrl-r set -g prefix Ca # prefix from ctrl-b to ctrl-a unbind Cb # allow ctrl-b for other things set -sg escape-time 1 # quicker responses bind Ca send-prefix # Pass on ctrl-a for other apps set -g base-index 1 # Numbering of windows setw -g pane-base-index 1 # Numbering of Panes # bind | split-window -h # Split panes horizontal bind \ split-window -h # Split panes horizontal bind - split-window -v # Split panes vertically bind h select-pane -L # Switch to Pane Left bind j select-pane -D # Switch to Pane Down bind k select-pane -U # Switch to Pane Up bind l select-pane -R # Switch to Pane Right bind -r Ch select-window -t :- # Quick Pane Selection bind -r Cl select-window -t :+ # Quick Pane Selection bind -r H resize-pane -L 5 # Switch to Pane Left bind -r J resize-pane -D 5 # Switch to Pane Down bind -r K resize-pane -U 5 # Switch to Pane Up bind -r L resize-pane -R 5 # Switch to Pane Right setw -g mode-mouse off # Mouse Off set -g mouse-select-pane off # Mouse Off set -g mouse-resize-pane off # Mouse Off set -g mouse-select-window off # Mouse Off #set -g default-terminal "screen-256color" setw -g monitor-activity on # Activity Alerts set -g visual-activity on set -g status-fg white # Status line Colors set -g status-bg black setw -g window-status-fg cyan # Window list color setw -g window-status-bg default setw -g window-status-attr dim setw -g window-status-current-fg white # Active Window Color setw -g window-status-current-bg red setw -g window-status-current-attr bright set -g pane-border-fg green # Pane colors set -g pane-border-bg black set -g pane-active-border-fg white set -g pane-active-border-bg yellow set -g message-fg white # Command/Message Line. set -g message-bg black set -g message-attr bright set -g status-left-length 40 # Status Line, left side set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P" set -g status-utf8 on # Status Line, right side set -g status-right "-------" set -g status-interval 60 # frequency of status line updates set -g status-justify centre # center window list setw -g mode-keys vi # vi keys to move unbind v # Open panes in same directory as tmux-panes script unbind n bind v send-keys " ~/tmux-panes -h" Cm bind n send-keys " ~/tmux-panes -v" Cm unbind Up # Maximizing and Minimizing... bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp unbind Down bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log" # Make keys for copy mode be like vi unbind [ bind Escape copy-mode unbind p bind p paste-buffer bind -t vi-copy 'v' begin-selection bind -t vi-copy 'y' copy-selection 

    Наконец (чтобы закрыть цикл), вот мои настройки .vimrc, которые мне нравятся, чтобы сделать оболочку более простой в использовании:

     " mdd specific stuff --- start set hlsearch set incsearch set number " more3 mdd stuff - set tabs to be spaces and length of 2 characters. set smartindent set tabstop=2 set shiftwidth=2 set expandtab " mdd specific stuff --- end " " Forget being compatible with good ol' vi set nocompatible " Get that filetype stuff happening filetype on filetype plugin on filetype indent on " Turn on that syntax highlighting syntax on " Why is this not a default set hidden " Don't update the display while executing macros set lazyredraw " At least let yourself know what mode you're in set showmode " Enable enhanced command-line completion. Presumes you have compiled " with +wildmenu. See :help 'wildmenu' set wildmenu " Let's make it easy to edit this file (mnemonic for the key sequence is " 'e'dit 'v'imrc) nmap <silent> ,ev :e $MYVIMRC<cr> " And to source this file as well (mnemonic for the key sequence is " 's'ource 'v'imrc) nmap <silent> ,sv :so $MYVIMRC<cr> highlight ExtraWhitespace ctermbg=red guibg=red match ExtraWhitespace /\s\+$/ autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ autocmd InsertLeave * match ExtraWhitespace /\s\+$/ autocmd BufWinLeave * call clearmatches() 

    Наконец, я shopt -s autocd несколько изменений в мой .bashrc-файл. Например, с shopt -s autocd когда я shopt -s autocd имя каталога (которое существует) в мой каталог. Острота! Итак, вот мои изменения .bashrc:

     # Automatic cd'ing shopt -s autocd # Have cd show directory info ('cos my shell doesn't show full directory path in $PS1 prompt (intended). cd() { builtin cd "$@" && pwd } # enable programmable completion features if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* # mdd Terminal Multiplexor 6/15/2012 if [[ ! $TERM =~ screen ]]; then exec tmux fi [ -z "$TMUX" ] && export TERM=xterm-256color export EDITOR=vim git config --global --add color.ui true и # Automatic cd'ing shopt -s autocd # Have cd show directory info ('cos my shell doesn't show full directory path in $PS1 prompt (intended). cd() { builtin cd "$@" && pwd } # enable programmable completion features if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* # mdd Terminal Multiplexor 6/15/2012 if [[ ! $TERM =~ screen ]]; then exec tmux fi [ -z "$TMUX" ] && export TERM=xterm-256color export EDITOR=vim git config --global --add color.ui true 

    Я использую XMonad + tmux + Emacs для аналогичной настройки.

    Я использовал ratpoison в течение года в прошлом, но XMonad чувствовал себя более надежным. У меня никогда не было никаких проблем с моими блоками размером 256 МБ, 512 МБ. У Ратпойсона были некоторые проблемы с устойчивостью, но это эпизод, и с тех пор все могло измениться.

    Я также использовал экран GNU, но tmux имеет некоторые функции, которых нет на экране.

    Если вы уже знаете vim, вам лучше не изучать новый инструмент. Если вы этого не сделаете, Emacs может использовать несколько оболочек (оболочка Cu Mx shell ), использовать вашу любимую оболочку ( Mx term ), вы можете писать, компилировать и отлаживать свои программы, читать ваши письма, видеовстречу в IRC, читать веб-сайт / info / man страниц, запускать большинство оболочек REPL (например, Mx run-python ), использовать git / hg / svn внутри, редактировать удаленные файлы с помощью TRAMP, использовать для работы почти все файловые операции, использовать grep / find / ack внутри него. Вы можете использовать Emacs с X или без него. Вам не нужен терминальный мультиплексор, такой как экран или tmux, но я предпочитаю запускать emacs в качестве сервера и использовать emacsclient из tmux, если он запускается из оболочки.

    • решение без X вообще: framebuffer + консоль Linux + экран GNU + vim + w3m
    • решение с X, но без среды рабочего стола: dwm + urxvt + экран GNU + vim + w3m + surf

    dwm использует только несколько сотен килобайт памяти, с клавиатурой, но вы также можете использовать мышь, если хотите. Проверьте http://suckless.org для более простых, но мощных инструментов.

    Для нескольких оболочек с удобной клавиатурной навигацией между ними вам может понадобиться заглянуть в экран GNU или byobu (что является его улучшением).

    Несколько месяцев назад я предпринял аналогичные усилия, отказавшись от мыши и исследовав множество наборов и оконных менеджеров. Похоже, вам уже предложили много полезных советов, но я решил, что пара дополнительных центов не повредит. Вот мои два:

    Взгляните на оконный менеджер i3. Он легкий, с простой конфигурацией и не требует перекомпиляции после изменения конфигурации. Функциональность плитки и помеченные рабочие пространства означают отсутствие мыши и бесконечных возможностей, основанных на предпочтениях и пространстве экрана. Программы могут быть назначены тегам, а ключи могут быть привязаны к чему угодно. i3status или conky легко передаются на i3 для информации о системе. Установите dmenu и выньте вилку из розетки.

    Попробуйте легкий дистрибутив. Arch, Gentoo и Slackware предлагают различные варианты настройки световой среды. Начните с малого и обратите внимание на зависимости. Установите только то, что вам нужно, и научитесь правильно его настраивать. Не запускайте X при загрузке. Научитесь использовать все инструменты за свой счет. Вим – зверь. Если вы уже знаете это, используйте его. Если нет, узнайте об этом. Обратите внимание на детали. Узнайте, что у вас есть в вашей системе и почему она там.

    У меня было подобное желание около шести месяцев назад. Прежде всего потому, что я работал через SSH весь день. Как уже было предложено, используйте экран GNU. Его довольно ужасно (IMHO) сразу после установки. Однако! Он очень настраивается через файл .screenrc. Есть много онлайн-руководств, которые предоставляют код, который вы можете вырезать и вставить, чтобы получить его так, как вам нравится.

    Я зашел так далеко, что собрал несколько сценариев для настройки такой среды – MALiCE – «My Awesome Linux Coding Environment». Его доступно на Github здесь:

    злоба

    Это также документирует многократные сочетания клавиш, а также образцы файлов .muttrc и .screenrc, которые настроены для работы с такими вещами, как gmail.

    Обратите внимание, что это не идеально, но это может сэкономить ваше время и усилия, чтобы взглянуть на некоторые из файлов конфигурации и скриптов. Там есть сильная предвзятость vim.

    Я также рекомендую такие программы, как cmus (текстовый медиаплеер – довольно хорошо) и mutt (почтовый клиент – снова настроенный через текстовый файл .muttrc). Есть также текстовые IRC-клиенты и считают, что это или нет, текстовые видеодекодеры, которые превратят видео в ASCII – немного экстремальные, но каждый в свои собственные.

    Если вам вообще не нужен рабочий стол, есть несколько вариантов. Например, вы можете установить slackware, который, если я правильно помню, загружается в интерфейс командной строки. Вам нужно уйти с пути, чтобы запустить графический интерфейс.

    Надеюсь, это поможет. Не стесняйтесь спрашивать о дальнейших предложениях.

    http://en.wikipedia.org/wiki/VESA_BIOS_Extensions

    http://www.pendrivelinux.com/vga-boot-modes-to-set-screen-resolution/

    Но они не все поддерживаются всеми графическими картами, вы должны их протестировать.

    Для переключения между несколькими оболочками я думаю, что Alt-F достаточно быстр.

    Ключом к этому является не распространение, а инструменты. Просто прекратите использовать инструменты графического интерфейса и настройте инструменты CLI, чтобы посмотреть и вести себя так, как вам хотелось бы. Один из способов – отредактировать ~/.Xresources , а затем загрузить его с помощью xrdb в ~/.xinitrc . Там вы также можете запустить множество приложений, которые вы всегда используете.

    Очевидно, вам нужна хорошая оболочка: я бы сказал zsh. Вам придется много работать на ~/.zshrc . (Но bash тоже будет работать, тогда ~/.bashrc будет местом.)

    Во-вторых, редактор. Emacs или vim, в зависимости от того, что вы в настоящее время используете. Менее продвинутый редактор (например, nano) не будет делать. Как и в случае с оболочкой, вы много работаете над ~/.emacs или соответствующими файлами инициализации.

    В текстовом редакторе вам необходимо включить столько, сколько возможно. Я приведу несколько примеров из мира Emacs, просто потому, что я пользователь Emacs. Для почты, rmail. Для управления файлами. Для просмотра веб-страниц W3M. Для новостей, gnus (хотя я его не использую). Для man-страниц, Mx man . И так далее.

    Причина, по которой вы это сделаете, и не использовать другие приложения CLI (например, только для man-страниц, lynx для просмотра и т. Д.):

    1) уровень интеграции (убить, выдернуть, сделать ярлыки, все в мгновение ока …)

    2) сочетания клавиш для навигации курсора, поиска и т. Д. (Т. Е. Памяти мышц)

    Что касается X, вам не нужно отказываться от него. Просто потому, что вы хотите, чтобы все в CLI не означало, что вы вообще не хотите GFX (или, по крайней мере, я хочу CLI-only и GFX). Например, хотя вы изменяете изображения с помощью (CLI) mogrify или convert, вы все равно хотите отобразить его для проверки результата (например, в gliv, просто отключите панель меню, чтобы не было соблазна использовать мышь). Другим примером являются документы LaTeX и PDF.

    Что касается терминала, большинство людей скажут экран или tmux, но вы также можете использовать виртуальные терминалы Linux (консоль или ttys). В X urxvt имеет расширение Perl, которое включает вкладки. Для тех (ttys и urxvt) вы можете настроить единый интерфейс, например Alt-J / K, чтобы переключаться между вкладками, поэтому вам не нужно использовать клавиши со стрелками (или все, что по умолчанию).

    Удачи 🙂 Не стесняйтесь присылать мне несколько указаний, когда вы закончите (или почти там … вы никогда не закончите), так как я нахожусь на том же пути, что и вы.

    Interesting Posts

    Почему, если я не отключу nm-апплет и xfce4-volumed, мой запуск замедляется?

    Загрузка Linux зависает: ACPI: Нет _BQC метод, не может определить начальную яркость

    Как искать и заменять строки, соответствующие списку заметок для нескольких файлов

    При объединении каталогов с одинаково названными файлами, как вы гарантируете замену только меньших + более ранних файлов?

    Как избежать отключения некоторых USB-устройств, когда машина приостановлена

    Расширение обмена на Centos

    Драйвер устройства для захвата беспроводного трафика с помощью адаптера Wi-Fi?

    Как установить ACL на USB-устройстве

    xv-подобный просмотрщик изображений, который позволяет мне аннотировать / отмечать изображения?

    Клавиатура не распознается даже с помощью клавиши showkey

    Виртуализировать Windows в Fedora и позволить Windows видеть реальное оборудование

    Один хост, две виртуальные машины, которые не могут пинговать друг друга. Как решить

    Как установить несколько версий одного и того же пакета в Gentoo?

    Файл пакета без .rpm или .tar.gz … Что делать?

    OracleSolaris 11.2 – удалить каталог, который является точкой монтирования

    Linux и Unix - лучшая ОС в мире.