VIM +スクリーン。 リモートWeb開発環境の構成

ワークフローの編成、コードエディター、使いやすさ、安定性について、100万件の記事が執筆されています。 「最も素晴らしい方法」であると主張せずに、私たちのチームの何人かの人々のためにウェブ開発環境がどのように組織されているかをお伝えしたいと思います。 ローカルGUIコードエディタ、Notepad ++、Eclipseなどのみを使用する場合は、すぐに予約します。この記事はあなたに向いていません。 コンソールで多くの作業を行っているため、長年にわたる自然選択の結果として、多くのユーザーがVIMにアクセスしました。コンソールは、開発環境ではほとんど独立したタブです。 その過程で、ログを確認したり、データベースにクエリを書き込んだり、サービスを再起動したりする必要があります。 したがって、標準のリモートコンソールで長時間働くプログラマーまたは管理者向けにWeb開発環境を編成するための具体的な実践的なレシピを共有したいと思います。





このスキームを使用すると、すべてのコンピューターでの作業環境はPuTTYとブラウザーだけになりますが、マルチスクリーンで開発に安全な開発ツールのすべてがサーバー側にあります。 ライトが突然点滅すると、すべてのコンピューターが再起動し、一般的な印刷不可能な表現があらゆる方向から来ます。サーバーに再接続すると、再起動前の表現の真ん中にいることに気づきます。 これは非常に便利です。ローカルコンピューターには、PuTTY、ブラウザー、およびWinAmpしかなく、コンピューターを窓から出して新しいコンピューターを取り出してから5分後に同じことを安全に行うことができます。



まあ、正式には、開発環境の要件は次のとおりです。





欠点もあります:





私は怠け者です。たくさんの設定オプションを読んだり、使用されているプログラムの複雑さを掘り下げたりすることにあまり興味がありません。そのため、著者はいくつかの異なる記事から多くの設定をコピーしました。



まず第一に、PuTTYからの2つのスクリーンショット、より正確にはその修正begPuTTYです。 begPuTTYを使用する目的は1つだけです。キーボードショートカットShift + Arrow LeftおよびShift + Arrow Rightをコンソールに正しく転送します。これは、xtermコンソール間で切り替える必要があります。 ここからダウンロードして著者に感謝することができます。 別のキーの組み合わせを使用してタブを変更する準備ができている場合は、通常のPuTTYを使用できます。 実際、プロジェクトで作業するために必要なのはそれだけです。 ポータブルですね。



スクリーンショット:



画像



画像



ここで最も興味深いのは、AUTO1、AUTO2などのボトムラインです。 これらはタブであり、私は非常に切望されたShift + Arrow Left / Rightを使用してそれらを切り替えます、そして、それぞれは独立したスクリーンを保存する本格的な独立したコンソールです。 たとえば、AUTO2では、開いているmysqlコンソールが通常ハングし、AUTO3およびAUTO4コードではハングします。 タブの数に貪欲にならないことをお勧めします。なぜなら、 人は、混乱することなく、6〜9個のエンティティを効果的にメモリに保持できます。 このようなタブの数は簡単に覚えておくことができ、何が起こっているのかを覚えることができます。 もっとやるなら、どこを思い出すのに時間を費やす必要があります。 しかし、これはそうです、認知心理学の始まりへの遠足...



サーバーに入ったら、コマンドを実行して目的のプロジェクトに接続し、screenはステータスバーにタブを持つ8つの新しい独立したコンソールを作成するか、現在のコンソールに接続して個々のコンソールの状態を復元します。



たとえば、「 auto 」と「 moto 」の2つのプロジェクトがあり、それぞれに独自の環境と独自の画面セットがあるとします。 環境変数$ PROJに応じて、プロジェクトごとに異なる環境と異なるエイリアスを含む.bashrcが1つあります 。 これが.bashrcです:



# .bashrc #  ,     .bashrc       # … #   – ,   screen  , #      ,   ,    alias auto='screen -AadRRS auto_screen -c /home/supergdeto/WORK/.screenrc_auto' alias moto='screen -AadRRS moto_screen -c /home/supergdeto/WORK/.screenrc_moto' #  ,  $PROJ == 'auto' –  ENV   “auto” If [ "$PROJ" = 'auto' ]; then export PROJECTPATH="/home/supergdeto/auto/" alias chik_chik_i_v_production='echo “yupi”' cd /home/supergdeto/auto/ #     auto fi #  'moto' –   If [ "$PROJ" = 'moto' ]; then export PROJECTPATH="/home/supergdeto/moto/" alias chik_chik_i_v_production='echo “yupi”' cd /home/supergdeto/moto/ #     moto fi
      
      







別の画面(タブの1つ)が非常に簡単に起動します-数行のスクリプト。 「 auto 」と「 moto 」の2つのそのような単純なファイル:



$猫/ホーム/ supergdeto / WORK / dev_env_auto

 export PROJ=auto bash
      
      







$猫/家/ supergdeto / WORK / dev_env_moto

 export PROJ=moto bash
      
      







そして最後に、主なもの: .screenrc_auto.screenrc_motoアナロジーによって作成された)



$ cat /home/supergdeto/WORK/.screenrc_auto



 # Turn off start message: startup_message off # Set messages timeout to one second: msgwait 1 # keep scrollback n lines defscrollback 5000 hardstatus alwayslastline termcapinfo xterm*|rxvt*|kterm*|Eterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;\007' termcapinfo xterm ti@:te@7 #       ,   ,    .. hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{y}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]' nethack on vbell off #   Shift+Arrow Left/Right     bindkey ^[[1;2C next bindkey ^[[1;2D prev #      8  AUTO1 – AUTO8 screen -t AUTO1 /home/supergdeto/WORK/dev_env_auto screen -t AUTO2 /home/supergdeto/WORK/dev_env_auto screen -t AUTO3 /home/supergdeto/WORK/dev_env_auto screen -t AUTO4 /home/supergdeto/WORK/dev_env_auto screen -t AUTO5 /home/supergdeto/WORK/dev_env_auto screen -t AUTO6 /home/supergdeto/WORK/dev_env_auto screen -t AUTO7 /home/supergdeto/WORK/dev_env_auto screen -t AUTO8 /home/supergdeto/WORK/dev_env_auto
      
      







ファイルの最後には、8つのスクリーンショットタブとその名前があります。 それらに接続するには、ログインして「 auto 」と入力し、 スクリーン-AadRRS auto_screen -c /home/supergdeto/WORK/.screenrc_autoを開始します 。これにより、新しいスクリーンショットが作成されるか、既存のスクリーンショットに接続されます。 私たちの経験では、新しい画面は通常、開発サーバーが過負荷になったとき、または何らかのバイナリ出力が画面を「爆発」したときにのみ作成されます。 これは非常にまれにしか発生しないため、通常は未保存のファイルについても心配しません。





さて、今ボーナス! 怠け者である私は、すべての記事にひどく欠けていたため、実際にこのことをすぐに試すことができませんでした。 割れますが、画面の複雑さを理解するのを嫌がり、キーコードをPuTTYに転送して、ステータスバーの形式を描画します。 ずっと前にこれが好きな人は誰でも私よりも良いことをしてくれたので、試してみたい人のために注意を払って段階的に指示を出しました。 複数のプロジェクトがある場合は、新しいプロジェクトに対して手順3〜8を繰り返します。 許可ユーザー:アバター、プロジェクト:projectone



  1. ここから begPutty ダウンロードして使用してください

  2. ディレクトリ/ home / avatar / WORKを作成します

  3. WORKでdev_env_projectone実行可能ファイルを作成し(別のタブを起動します)、そこに2行書き込みます

     export PROJ=projectone bash
          
          





  4. そこに.screenrc_projectoneファイルを作成し( 多数のスクリーンショットを開始し、それぞれにdev_env_projectone ファイルを起動します)、この記事の.screenrc_autoリストの内容をコピーします

  5. " screen -t AUTO1 / home / supergdeto / WORK / dev_env_auto "のような行の名前を " screen -t PROJECTONE1 / home / avatar / WORK / dev_env_projectone "に変更し、これらの行の数を必要なタブの数と等しくする

  6. .bashrcで、プロジェクトごとに異なる環境が必要な場合は、PROJ ==” projectone”のセクションを次のように追加します。

     If [ "$PROJ" = 'projectone' ]; then #  ,          projectone fi
          
          





  7. ibid .bashrc add alias

    エイリアスprojectone = 'screen -AadRRS projectone_screen -c /home/avatar/WORK/.screenrc_projectone'

  8. ログインまたは.bashrc





サーバーに接続し、コンソールで「projectone」と入力すると、タブが表示されます。 それぞれに、プロジェクト「projectone」の環境を備えたコンソールがあります。



「SPASI ...」と入力し始めると、突然LANまたはコネクタの電源が切断されるか、WiFiが切断されます。 その後、操作を繰り返し、最後に魔法の言葉を追加して......



All Articles