ritarock’s blog

プログラミングとか映画とか趣味とか

vimをちゃんとやる6

@@

直前に呼び出されたマクロを繰り返す

~

カーソル下の文字を大文字/小文字に変換する

マクロにコマンドを追記する

qa で記録したマクロならば、qAでレジスタaの内容に追記する

:put

:put {レジスタ} でレジスタ内容を挿入する 内容を編集してレジスタに格納することで新しいマクロとして使用可能

vimをちゃんとやる5

"{register}

"ayiw でレジスタaに単語をヤンク "ap でレジスタaの単語をプット

"0p

ヤンクレジスタは次のヤンクまで内容が留まる

:reg

レジスタの中身を見る

"_

ブラックホールレジスタ
消去専用レジスタ
"_diw で単語をレジスタに残さずに消去できる

"+

クリップボードのヤンクをプットできる

ビジュアルモードの選択範囲を置換

ビジュアルモードで置換対象を選択してヤンクヤンク内容をプット

インサートモードで<C-r>0

ヤンク内容をプット

vimをちゃんとやる2

:tabedit {filename}

{filename}のタブを作る

<C-w>T

アクティブなウィンドウを独立したタブに移動する

:tabc[lose]

アクティブなタブを閉じる

@:

直前のコマンドライン入力を繰り返す

タブの移動

覚え方は「"g"oto "t"ab」

  • {N}gt
  • gt
  • gT

以下の通り

  • {N}番目のタブに移動
  • 次のタブに移動
  • 前のタブに移動

vimをちゃんとやる1

;

fコマンドで実行した直前の検索を繰り返す

1文字ずつ置換する

  1. 置換対象の文字の上で *
  2. cw"文字入力"< ESC >
  3. n
  4. .

やってることは以下の通り

  1. 置換対象文字のハイライト
  2. 1文字置換
  3. 次の文字へ移動
  4. 変更を繰り返す

daw

覚え方は「delete a word 」
カーソルのある単語を削除

インサートモードで <C-w>

直前の単語まで削除

インサートモードで <C-u>

行頭まで削除

gv

直前のビジュアル選択範囲を再度選択

ビュジュアルモードで o

端点に移動

表のカラムの下の行に線を入れる

  1. 項目(先頭)行でyyp
  2. Vr-

やってることは以下の通り

  1. 項目(先頭)行の末尾までコピーして下の行に貼り付け
  2. 1で貼り付けた行末まで"-"に置換

選択した行末に ; を追加

  1. <C-v>でビジュアルブロックにする行を選択
  2. $
  3. A;
  4. < ESC >

やってることは以下の通り

  1. <C-v>でビジュアルブロックにする行を選択
  2. ビジュアルブロックにされた行の行末までビジュアルブロックにする
  3. 末尾に ; を挿入
  4. < ESC >

選択した行末に ; を追加②

範囲が広い時はこっちの方がよい(今の行から最後まで等) ノーマルモードでのコマンドを実行する :normarl を使う

  1. A; < ESC >
  2. jVG
  3. :'<,'>normal .

やってることは以下の通り

  1. カーソルのある行末に ; を追加
  2. 下の行に移動して、最後の行まで行選択
  3. 選択されている行に対して . コマンド(行末に ; を挿入)を繰り返す

<C-r><C-w>

* で単語をハイライト表示したとき、<C-r><C-w>でハイライトした単語をコマンドに入力できる

ansibleでmacbookを管理

はじめに

先日、macbookが起動しなくなり仕方なくクリーンインストールしたので、今後のことも考えてmacbookの環境を管理する

環境

brew と brew caskは導入済み
$ brew install ansible
上記、コマンドを実行済み
$ ansible --version
ansible 2.5.0

今回用意した2つのファイル

hosts

localhost

localhost.yml

---
  - hosts: localhost
    connection: local
    gather_facts: no
    become: no

    vars:
      homebrew_packages:
        - name: python
        - name: fish
        - name: git
        - name: node
        - name: pyenv
        - name: tree
        - name: vim

      homebrew_cask_packages:
        - name: google-chrome
        - name: google-drive
        - name: virtualbox
        - name: vagrant
        - name: iTerm2
        - name: atom
        - name: docker
        - name: evernote
        - name: dropbox
        - name: slack

    tasks:
        - name: update homebrew
          homebrew: update_homebrew=yes

        # brew
        - name: install homebrew_packages
          homebrew:
            name={{ item.name }}
          with_items: '{{ homebrew_packages }}'

        # homebrew_cask
        - name: install homebrew_cask_packages
          homebrew_cask:
            name={{ item.name }}
          with_items: '{{ homebrew_cask_packages }}'
$ ansible-playbook -i hosts localhostsyml

これで、homebrew_packagesとhomebrew_cask_packagesに記述したソフトウェアをインストールできる

ソース