Vimの操作方法私的メモ

Vimの操作方法私的メモ

Vimをサーバ内でテキスト編集をする際に仕方なく使うツールではなく、効率的な入力のために使うツールにしたく、学習を開始した。

Vimの操作方法を記した記事は数多くあるが、自分が役に立つと思う操作・学習方法を残しておく。

前提として知っておくべき知識

Vim Cheat Sheet 随時参考にしていく

  • 操作の取り消し
    • u <> ctr + r

ノーマルモードでの操作は、オペレータとモーションの組み合わせで行う。

vimのキー(主にノーマルモードについて)は、大きく分けて「オペレータ」と「モーション」の2種類がある。これを把握することが大事。 オペレータ: 動詞として動作を指定する。主要なものは4つなのでここから覚えよう モーション: 対象範囲を指定する オペレータは意味のあるキーバインドになっているので、以下のような感じで覚えよう:

c : change (変更) d : delete (削除) y : yank (ヤンク: コピーと同義) g : go (移動全般) ノーマルモードでは基本的に最初にオペレータを入力し、その後に範囲指定を行う(CUI的発想)が、ビジュアルモードでは範囲を最初に選んでそれからオペレータを入力する (GUI的発想)という違いがある。

Vim幼稚園からVim小学校へ #Vim - Qiita

vimtutorに取り組む

vimtutorにある操作は積極的に使って行きたい。

自分が知らなかった・使いたい操作を列挙していく。

モーション(ノーマルモードだとカーソル移動)

  • オペレータ:動詞
    • c : change (変更)
    • d : delete (削除)
    • y : yank (ヤンク: コピーと同義)
    • g : go (移動全般)
  • 数値のタイプで繰り返し設定ができる
  • モーション:対象範囲
    • w - カーソル位置から空白を含む単語の末尾まで。
    • e - カーソル位置から空白を含まない単語の末尾まで。
    • $ - カーソル位置から行末まで。
  • ex.
    • d3w -> 3単語を削除する

編集

  • p
    • 削除したものを貼り付け
  • D
    • 行末まで削除
  • 置き換え
    • r
      • 入力との置き換え
    • ce
      • 単語の末尾まで
    • cc
      • 行全体

移動

  • 0
    • 先頭 <> $
  • w
    • 単語 <> 末尾
  • 行番号 -> G
    • 行番号にジャンプ
  • 元の場所に戻る
    • ctr + o <> ctr + i
  • %
    • かっこに移動
  • 置換
    • :s/hoge/fuga/(g)
      • gがあると行全体
    • :#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定する。
    • :%s/old/new/g ファイル全体で見つかるものに対して変更する。
    • :%s/old/new/gc ファイル全体で見つかるものに対して、1つ1つ確認をとりながら変更する

検索

  • ?で検索
    • 逆方向
  • y or

その他

  • 外部コマンドの実行
    • :!コマンド

参考にした記事

Vim幼稚園からVim小学校へ #Vim - Qiita

Happiness Chain EuforiaでWebアプリ開発を学び始めました

「SRE」と呼ばれる部署に所属しているが、今までのキャリアで開発をメインに業務を行ってきたことはない。(運用に必要なツール開発等でスクリプトを作成する程度)

今年は開発の知識を学び、SREとしてのバリューを向上させたい。

そのために、Happiness Chain Euforia で学習を開始した。

私のキャリア遍歴

インフラエンジニアを2年ほど経験し、転職して「SRE」を冠するチームに所属すること3年半余。

キャリアの最初はデータセンターに配属され、IBM製品を中心としたハードウェアの保守をやっていて、いわゆる「レイヤ0」というような、ガチ物理系な仕事であった。

サーバにログインする際は、大抵ログの取得か、BIOSの操作のためであって、インフラエンジニアとしても、ハードウェアに関わる文字通り「レイヤの低い」仕事だったと思う。

画像はソードアートオンラインの1シーンだが、これはIBMの「IBM z Systems」というメインフレームをイメージに描かれている。このシステムも保守の対象だった。

IBM Mainframe Blog

巨大なサーバやら、1Uの小さなサーバやら、とにかく大量のシステムが保守対象で、良くも悪くもIBMの人と深く関わりながら仕事をしていたので、 とてもやりがいはあったし、楽しい仕事だった。

ただ、SESという業務形態で不安定だったことと、所属会社の上司に言われた「AWSはいいぞ」というアドバイスを受け、独学で色々学んだ末に転職をし、Webの事業会社のSREチームに所属することになった。

AWS上のWebシステムを扱い、インフラの構築や運用作業を実施している。今所属している会社ではGCPを扱っている。

一時的にインフラエンジニアに戻ったりもしたが、最初の転職以降はSREとして業務をしている。

キャリアに対するそこはかとない不安

日々の業務はこなしているものの、自分の仕事に対して何となくの不安というか、不満のようなものが拭えない。

SREとは、ソフトウェアエンジニアがサービス運用の担い手になった際に期待・発揮される役割を体系化したものなんだと思う。

そうであるならば、開発経験がないのになぜ自分はSREなのか・・・そもそも世にあるSREの求人では「何らかの言語での開発経験」が必須で求めれていることがほとんどである。

その場その場で知識を補強して、どうにかやってきたが、どこかで開発経験を積むことなしには、今後のキャリアは頭打ちになってしまうのではないか・・・ そのような不安が日々強くなってきた。

Happiness Chain Euforiaでの学習

ただ、何のスキルも無しに開発業務に飛び込んでも、誰も幸せにならないだろう。

仮に自分の職場に「ITインフラってやったことないですが、これから頑張って戦力になりたいです!」みたいな人が来ても、特に嬉しくないし、すごく困ると思う。

そこで、Happiness Chain Euforiaに入会して学習を進めることにした。

900〜1200時間のカリキュラムで現場の即戦力になるWebエンジニアを育成します。

とのことで、自分のニーズにピッタリで、Python・Goを始めとした、モダンな技術を一通り学べるカリキュラムに魅力を感じた。

カリキュラムの全体感は、以下のような感じ

私はPythonコースでDjangoのアプリケーションを作成した後に、Goでの開発を学ぶコースを選択した。 少しはPythonの経験があるため、まずはPythonで基本的なアプリケーション開発を学び、難易度の高いGoを学ぼうという目論見だ。

また、Euforiaでは通常のコース内容に加え、以下のようなサポート内容があり、通常のコースよりも手厚い内容となっている。

  • 1日の開始時にslackにmust/wantで取り組むことを投稿
    • 終了時に達成状況の振り返りを実施
  • 週1でCEO・CTO・メンバーと進歩報告会を実施
  • CTOとのペアプログラミング
  • 開発合宿の開催

内容の手厚さもさることながら、Euforiaではそれなりの金額を前払いしているので、リターンを是が非でも取りたい・・・

(通常のHappiness Chainは月額課金制・今後はEuforiaに一本化される予定とのこと)