//ルートにアクセスされたら/archiveにリダイレクトする

エイリーの備忘録

開発や音楽について書いていこうと思っています。

gitを使うなら最低限覚えておきたいgitコマンド6選

gitを運用するなら覚えておきたいコマンドを紹介します

git add

変更のあったすべてのファイルをステージングします

git add .

特定のファイルをステージングします

git add <ファイル名>

git commit

git commit -m

ステージングされた変更をコミット(確定)します

git commit -m "<コミットメッセージ>"

git commit --amend

前回のコミットに現在のステージングされている変更を適用します

git commit --amend -m "<コミットメッセージ>"

git push

git push

特定のブランチをリモートブランチへpushします

git push origin <ブランチ名>

git push -f

ローカルで過去改変などをしてpushできなかった場合にローカルの変更で上書き ただし、これをやる場合は、 共同編集者のコミットをなかったことにしちゃった///てへぺろ ってなるかもしれないので最新の注意を払わないといけない

git push -f origin <ブランチ名>

git pull

特定のリモートブランチの変更をローカルのカレントブランチへ反映します 正直git pull origin master以外あまり使わないですが・・・

git pull origin <ブランチ名>

git checkout

git checkout

特定のブランチへ切り替える

git checkout <ブランチ名>

git checkout -b カレントブランチの派生ブランチを作成してブランチを移動

git checkout -b <ブランチ名>

git reset

git reset 直前のコミットを取り消す。ただし、ファイルの変更は破棄されない

git reset @^

git reset --hard

コミットまでのファイルの変更を破棄する

git reset --hard

直前のコミットを取り消す。ファイルの変更も破棄される

git reset --hard @^

終わりに

以上がgitを使うな最低限覚えておきたいgitコマンドになります。 ~~ 正直はエディタのgitクライアントも優秀なので、極力手をキーボードから離したくないという方や、CUI最高↑という方以外はコマンドを覚えなくてもいいと思います。 ~~

vscodeがとうとう4画面分割に対応!

はじめに

6月リリース(version 1.25)が正式安定版としてリリースされました! vscodesublime textやvimで出来ていた4画面分割が今まで出来ていなかったのですが、とうとうvscodeでもできるようになりました!

code.visualstudio.com

今回のリリースでは、画面分割(Grid editor layout)が目玉の機能かなと思いつつ、触ってみて触りやすかったので、 (記事にするほどの内容でもないですが) 記事にしてみました。

4画面分割ってどうなるの?

↓こうなります f:id:youmjww:20180710235643p:plain

どうやって画面分割するの?

上メニューから[表示]->[Editor Layout]->[Grid(2x2)]を選択するとぱっと4画面分割してくれます。 f:id:youmjww:20180710235824p:plain

また、タブを直接ドラッグしていい感じに持っていくとこんなカオスな画面分割もできてしまいます。 f:id:youmjww:20180711000337p:plain

タブを閉じるとせっかく分割した画面がもとに戻ってしまって嫌という方へ

vscodeの設定ファイルに下記のおまじないを書いてください "workbench.editor.closeEmptyGroups": false するとあら不思議 f:id:youmjww:20180711000652p:plain

タブをすべて閉じてもちゃんと分割が保持されたままになっているではありませんか!

あとがき

今回のアップデートは本当に神アップデートだと思います。 今まで、これが出来なかったからATOMに戻ろうか何回か考えるレベルです(そういえばGitHubはMSに買収されていたがATOMvscodeに結合されるのか生き延びるのかどっちなんだろう)

気がつけば、左にアウトラインの項目ができており、ファンクションの一覧が見れるようになってるのもいいですし、ありがたい機能がアップデートでたくさん来るのは本当にありがたく、使いやすいエディターなので、これからも、vscodeを応援していきたいです。

vimで繰り返し入力を自動化

はじめに

みなさん、エディタを使っているときに同じ作業の繰り返しを行うことは無いでしょうか? 例えば、1行で書いていた連想配列を要素ごとに改行したりするのって手作業で行うのってめんどくさいですよね?

vimでやってみてはいいのでは?

vimにはキーボードマクロという機能があり、キーボードマクロを使うとキーボード操作を記録してn回自動でぶん回すということが簡単に行うことができます。

実行方法

特に記載がない限り、ノーマルモードで実行とします。

記録開始

qa

上記コマンドで a にキー操作を覚えさせるという意味になります。 例えば、 qi で記憶させると i に記録されます。

記録を終了

q

記録モード時に q を入力することにより、記録を終了することができます。

記録したマクロの呼び出し

1回だけ実行する

@a

n回実行

n@a

nの部分に繰り返したい回数を入れます。 例えば、10回実行したい場合は 10@a と入れることで10回実行することができます。

あとがき

vimは調べれば調べるほど便利な機能がたくさん出てきて面白いエディターです。 (そしてメイン使いしているvscodevimの機能を求めて調べても実装されていなくてがっくりする・・・) 早くvimに完全に乗り換えたいです!

:NeoBundleInstallをvimの外から叩く方法

皆さんこんにちわ
vimの環境構築は自動化していますか?
自動化した環境で、プラグインのインストールはどうしてますか?
NeoBundleを使っていると、ここだけ手動になるのがめんどくさくないですか?
今回は、これを解決してみます。

# 実際に外部から:NeoBundleInstallを叩いてみる

$vim +":NeoBundleInstall" + :q

はい。これだけです。

もし、他のコマンドを実行したかったら、`:NeoBundleInstall`の部分を他のものに書き換えてください。
そして、最後に`:q`をするのを忘れないでください。これを忘れると、自動でvimが終了してくれません。
これだけでvimの環境構築で本来なら一度、人間がvimを開かないと出来ない操作を自動化することが出来ます。

環境構築スクリプトをワンライナーで配布する方法!

みなさんこんにちわ! みなさんは環境構築はスクリプト化していますか? スクリプト化していたらどうやって実行していますか? クラウドからコピペでスクリプトファイルを作って実行していたりしないですか? 今回は、コマンド一発でスクリプトをwebから引っ張ってきて、実行する方法を紹介したいと思います。

導入事例

まずは、導入事例を見てみましょう。

https://www.meteor.com/install

https://brew.sh/index_ja

ぱっと探しますと、homebrewとmeteorがワンライナースクリプトで配布を行っていました。 しかも、homebrewに関してはここで紹介する方法と同じ方法で配布を行っています。(実行言語はrubyだけど。)

上記で上げたとおり、大きなコミュニティでも使われている方法ですので、楽にインストールを行えるというのが伺えると思います。 では実際にこの配布環境を作ってみましょう!

用意するもの

手順

  1. githubのpublicリポジトリスクリプトをうpする
  2. githubリポジトリにうpされたスクリプトのrowのURLを取得する
  3. curlスクリプトを取ってくる
  4. 実行する!

詳しい手順

githubのpublicリポジトリスクリプトをうpする

ここでは詳しい説明を割愛しますが、必ずpublicリポジトリにpushしてください。 publicでないとファイルを取ってこれない(はず)です

githubリポジトリにうpされたスクリプトのrowのURLを取得する

ここからが本番です。 一度、ブラウザで実際のファイルを確認してみましょう。 まず、ブラウザのURL欄に下記URLをコピペしてください。

https://raw.githubusercontent.com/account/repository/branch/filename

そして、後ろ4つのパラメータを自分に当てはまる形に修正してください。

account = githubのアカウント名
repository = リポジトリ名
branch = ブランチ名(masterがおすすめ)
filename = 目的のファイル名

例:https://raw.githubusercontent.com/youmjww/vimSetup/master/vimSetup.sh

これで実際に見てみると、目的のファイルのrowが見えるはずです。

実際にコマンドラインから実行してみる

ここは本当に簡単で、ワンライナーで実行します。 URLの部分は自分のURLに書き換えてください。

$curl https://raw.githubusercontent.com/account/repository/branch/filename | sh

ここでは、curlコマンドでgithubからソースをダウンロードしてきて、ダウンロードが完了したらshで実行をしています。 shの部分を書き換えると好きなシェル環境で実行できますが、筆者個人的には、どんな環境でも動くshで実行できるようにコードを組むのがいいかなと思います。

このスクリプトのメリット・デメリット

メリット

  1. リポジトリのREADME.mdにでも実行用のコードを書いておけば一回コピペして実行するだけなので操作する時間を大幅に削減できる。
  2. 友人などにおすすめだから使ってみてって渡す時に気楽に環境をインストールしてもらえる
  3. シェルスクリプトで書いておけば、大体のUnix/Linux環境で動く
  4. かっこいい!←ココ重要
  5. スクリプトをメンテしてもURLは変わらないので一度作ってしまえば永久に使えるコマンドになる

デメリット

  1. AnsibleやChefみたいに、環境構築専門の言語じゃないので、エラーが出ても止まらない。
  2. シェルスクリプトを書くのが辛い・・・

あとがき

この方法でのスクリプトの配布は本当に便利でして、あまり時間がない時にサックっと環境構築をしたい時にワンライナーを実行するだけでいいので、おすすめです! みなさんも是非やってみてください!(そして、いいなと思ったらツイートやコメントをくれると嬉しいなw)

俺用vimチートシート

この記事は、私の私による私のためのvimの操作方法を記述した記事です。
随時更新予定です。

この記事を書く背景

最近、vimのコマンドを覚えれなくなってきたので、メモが欲しいけど、持ち歩くのはめんどくさいし、どこからでも見やすいブログがいいと思ったのでここに書きます!

前提環境

vimがインストールされているmaclinux
windowsだと、インストールスクリプトを走らせるだけでも苦労しそうだから、知らんw

vimの設定とプラグインをインストール

$curl https://raw.githubusercontent.com/youmjww/vimSetup/master/vimSetup.sh | sh

操作方法

特に記述がない限り、ノーマルモードで実行お願いします。
独自カラムは、導入したプラグインの挙動だったり、独自に設定したショートカットだったりします。

モード変更

コマンド 内容 独自
a カーソルの次の位置でインサートモード
i カーソルがある位置でインサートモード
v ビジュアルモード
Esc(連打) ノーマルモード

カーソル移動

1ずつ移動
コマンド 内容 独自
k 上へ移動
j 下へ移動
h 左へ移動
l 右へ移動
複数まとめて移動
コマンド 内容 独自
G 一番下へ移動
gg 一番上へ移動
H 行の左端へ移動
L 行の右端へ移動

ファイル操作

コマンド 内容 独自
:w 変更を保存する
:q ファイルを閉じる
:q! 保存していなくても、強制的にファイルを閉じる
:wq ファイルを保存して閉じる
:wa 開いているファイルの変更をすべて保存
:qa 開いているすべてのファイルを閉じる
:wqa ファイルをすべて保存してファイルを閉じる

コピペ

コマンド 内容 独自
(ビジュアルモードで範囲指定後)y コピー  
dd 一行カット
x 一文字カット
p ペースト

検索

コマンド 内容 独自
:Ag 検索ワード カレントディレクトリ以下のソースから文字列の検索
Control + p ファイル名検索
?[文字列] カーソル位置より上方向に[文字列]を検索
/[文字列] カーソル位置より下方向に[文字列]を検索
n 次の候補へ移動
N 前の候補へ移動
F3キー 検索ハイライトを解除

その他コマンド

コマンド 内容 独自
space + f ファイルエクスプローラーを開く
:数字 指定された行へジャンプ
ci' シングルクォートの間を削除してインサートモード
ci" ダブルクォートの間を削除してインサートモード
ci( 丸括弧の間を削除してインサートモード

あとがき

vimに結構慣れてきて、自己流ながらvimを勉強しながら使っているのですが、やはりvimは奥が深く、使っていて楽しいです。まだまだvimは使いこなせていないですが、これからどんどん使って(私にとって)可愛いvimにしていこうと思います。
最後に一言: vimたんかわいいよ///

vimプラグインマネージャのインストール

何回も同じことをやってるので、備忘録として書きます。
vimプラグインを手動で管理するのは面倒なので、プラグインマネージャを使うと便利(らしい)

確認済み環境

ubuntu16.04
centOS バージョン不明
maxOS X 10.12.5(Sierra)

NeoBundleをcloneしてくる

# プラグインインストール用のディレクトリを作成
# mkdirに-pオプションを付けることでサブディレクトリも同時に作れる
$mkdir -p ~/.vim/bundle

# プラグインマネージャをcloneしてくる
$git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

.vimrcの設定

vimrcを開く

$vim ~/.vimrc

vimrcの先頭に追記

" プラグインの管理のやつ
if &compatible
  set nocompatible
endif

set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'

" 追加プラグイン
" ファイルエクスプローラ
NeoBundle 'scrooloose/nerdtree'


NeoBundleCheck

プラグインを追加する場合は、NeoBundleCheckより前に使用したいプラグインを追記するとvimを開いた時に自動的にインストールしてくれます。

あとがき

最近vimを使わざる得ない事があり、vimを使っているとだんだん慣れてきて、もっといい環境を整えれないものかと思う今日このごろ。
とりあえず、vimVScodeレベルで使えるようにしたいです・・・
あと、環境が変わるたびにプラグインマネージャをインストールするのがめんどくさいのでどうにか自動化したいものです・・・