vimをちゃんとやる4
H, M, L
画面の先頭/真ん中/末尾にジャンプ
g;
直前の変更位置までジャンプして戻る
m {letter}
バッファにローカルなマークを作る
{letter}を大文字にすることでグローバルマークにできる
` {letter}
マークにジャンプする
vimをちゃんとやる3
,
f{char} の反対方向に移動
t
f{char} は{char} の文字上
t{char} は{char} の文字の手前
vi{char}, va{char}
viのときは {char}を含まない
vaのときは {char} を含む
vimをちゃんとやる2
:tabedit {filename}
{filename}のタブを作る
<C-w>T
アクティブなウィンドウを独立したタブに移動する
:tabc[lose]
アクティブなタブを閉じる
@:
直前のコマンドライン入力を繰り返す
タブの移動
覚え方は「"g"oto "t"ab」
- {N}gt
- gt
- gT
以下の通り
- {N}番目のタブに移動
- 次のタブに移動
- 前のタブに移動
vimをちゃんとやる1
;
fコマンドで実行した直前の検索を繰り返す
1文字ずつ置換する
- 置換対象の文字の上で *
- cw"文字入力"< ESC >
- n
- .
やってることは以下の通り
- 置換対象文字のハイライト
- 1文字置換
- 次の文字へ移動
- 変更を繰り返す
daw
覚え方は「delete a word 」
カーソルのある単語を削除
インサートモードで <C-w>
直前の単語まで削除
インサートモードで <C-u>
行頭まで削除
gv
直前のビジュアル選択範囲を再度選択
ビュジュアルモードで o
端点に移動
表のカラムの下の行に線を入れる
- 項目(先頭)行でyyp
- Vr-
やってることは以下の通り
- 項目(先頭)行の末尾までコピーして下の行に貼り付け
- 1で貼り付けた行末まで"-"に置換
選択した行末に ; を追加
- <C-v>でビジュアルブロックにする行を選択
- $
- A;
- < ESC >
やってることは以下の通り
- <C-v>でビジュアルブロックにする行を選択
- ビジュアルブロックにされた行の行末までビジュアルブロックにする
- 末尾に ; を挿入
- < ESC >
選択した行末に ; を追加②
範囲が広い時はこっちの方がよい(今の行から最後まで等) ノーマルモードでのコマンドを実行する :normarl を使う
- A; < ESC >
- jVG
- :'<,'>normal .
やってることは以下の通り
- カーソルのある行末に ; を追加
- 下の行に移動して、最後の行まで行選択
- 選択されている行に対して . コマンド(行末に ; を挿入)を繰り返す
<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に記述したソフトウェアをインストールできる
Dockerのインストールからコンテナ作成まで
開発環境
ubuntu/trusty64
Dockerのインストール
$ sudo apt-get update $ sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 $ sudo add-apt-repository -y \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" $ sudo apt-get update $ sudo apt-get install -y docker-ce
Dockerコマンド
ローカルに保存されたdockerイメージの一覧を取得
$docker images
docker hubにあるイメージを検索
$docker search <イメージ>
docker hubにあるイメージをローカルに取得する
$docker pull <イメージ>
コンテナでプロセスを起動する
$docker run -it <イメージ> /bin/bash
起動したコンテナはexitすれば自動的に終了
プロセスを確認する(停止されたものも含む)
$ docker ps -a
停止されたコンテナの削除
$ docker rm <コンテナid>
idは一意なので頭の4桁程度入力すればOK
何度もコンテナの起動と停止を行なっていると大量にプロセスが生まれるのでそれを避けたい
コンテナを全て削除
$ docker rm $(docker ps -aq)
exitと同時にコンテナの削除
$docker run --rm -it <イメージ> /bin/bash
ポートをホスト側に公開して起動
$ docker run -it -p 80:80 <イメージ> /bin/bash
外部ファイルを取り込む
$ docker run -it -v <ホスト側のパス>:<コンテナ側のパス> <イメージ> /bin/bash
Dockerfile作成してからの流れ
Dockerfileからイメージを作成
$ docker build -t <作成するイメージ名> .
作成したイメージからコンテナを起動
$ docker run --name <起動するコンテナ名> -d -p <イメージ名>
コンテナの停止
$ docker stop <コンテナ名>
hexoとやらを試してみた
hexo
githubのアカウントあれば誰でもブログを公開できる
まずはリポジトリ作成
[username].github.io というリポジトリを作成
hexoの準備
公式通りに hexoをグローバルにインストール
$ npm install hexo-cli -g
以下のコマンドでディレクトリを作成
$ hexo init blog
作成されたディレクトリに移動して、モジュールをインストール
$ cd blog $ npm install
インストールできたら、以下のコマンドで起動
$ hexo server
http://localhost:4000/にアクセスすると雛形ができている
githubで公開
作成されたディレクトリ配下にあるconfig.ymlを弄る config.ymlではサイトのタイトル等を変更可能
deploy: type: git repo: https://github.com/[username]/[username].github.io.git branch: master
編集したら、以下のコマンドでデプロイ
hexo deploy -g
エラーがでた
どうやら、hexo-deployer-gitというモジュールをインストールしないといけないよう
ってことでインストール
$ npm install hexo-deployer-git --save
改めてデプロイ
$ hexo deploy -g
https:[username].github.io/にアクセスすると先程http://localhost:4000/でみたページにアクセス可能
※反映にそれなりに時間が掛かる
テーマの導入
こちらのサイトから気に入ったプラグインclone
例えば、これなら github.com READMEにあるようにコマンドを実行
$ git clone https://github.com/mkkhedawat/clexy themes/clexy $ git clone https://github.com/mkkhedawat/clexy themes/clexy $ yarn remove hexo-renderer-ejs $ yarn add hexo-renderer-jade $ yarn add hexo-prism-plugin
_config.ymlを編集
prism_plugin: mode: 'preprocess' # realtime/preprocess theme: 'default' line_number: false # default false theme: clexy
デプロイ
hexo deploy -g
記事の投稿
以下のコマンドを実行
$ hexo new post 新規ページ
source/post/新規ページ.mdが作成されているので弄ってpushすれば記事が投稿できる
ところで、hexoってなんて読むんだろう・・・?