ブログ

読んで思い出す。忘れるために書く

Q&A

Q. OS によって異なるコマンドを .vimrc 上で使い分けたい

A. if と has() を組み合わせて判断させる たとえば、ターミナル上... コマンドで何か開きたい場合に : Mac OS -> open Ubuntu -> gnome-open Windows -> start と、やりたいことに対してOS ごとに コマンド名が違う そういった場合に、次のように条件分岐を…

Q. TypeError: 'range' object is not callable で range(n) が呼び出せない

A. del を使って定義を削除する # 誤って組み込みオブジェクトへの参照定義を上書きしてしまった...!! 初心者なので...!! range = range(10) # ここではエラーなく実行できる for i in range: print(i) # 次回呼び出し時にエラーになる... ので del する del…

Q. git git git... もう打ちたくない... (サブコマンドだけ打ちたい)

A. gitsh を使う Homebrew に対応してるので tap してからインストールする: brew tap thoughtbot/formulae brew install gitsh MEMO: コマンド名が長い気がするので alias gish=gitsh で短縮して使ってる TIPS: .gitconfig に alias を設定する ことで、さ…

Q. Alfred Workflow + AppleScript で日本語入力したい

A. クリップボードにコピーしてペーストする Alfred 側 スクリプト記述場所で pbcopy を使って query をクリップボードにコピーする AppleScript に渡す前にクリップボードに入力したい文字列をコピーする AppleScript 側 貼り付け操作のショートカットキー…

Q. コマンドを typo した! くそっ!!

Q&A

A. fuck コマンドをつかう brew コマンドをtypo した! でも正確に打つことを放棄して typo, ふぁっく って言いすぎて、隣から「LANGUAGE!」って注意される日が来るかもしれない Link nvbn/thefuck: Magnificent app which corrects your previous console c…

Q. ディスクの空き容量やファイルの数を監視したい

Q&A

A. watch コマンドを使う 動画のエンコード処理やデータのダウンロードで、大まかな状況を把握する、といった使い方ができる # ハードドライブの空き容量, 処理したデータの数を定期実行で表示 watch -d "df -h /;echo count:;ls *.mp4|wc -l" Link Man page…

Q. Markdown のリンク リストをタイトルの短い順に並べ替えしたい

A. Nokogiri と github/markup, それと sort_by を使う 手順とコード 手順 コード Links 手順とコード 手順 大まかな手順としては: markup に Markdown を解析させて HTML に変換 Nokogiri でHTML 中から <a/> タグを抽出 <a/> タグのタイトル部分とURL 部分を抽出 <a/> </a/></a/></a/>…

Q. ローカルに立ち上げた Web アプリをURL で共有して確認してもらうには

Q&A

A. ngrok を使う (Heroku にデプロイしてもいいが より簡便に済ませたい) 使用例 状況 手順 Link 使用例 状況 PHP で簡単なコードを書いてみて動いてるみたいだけど 他の人から見てもそうなのか確認したい (ngrok は開発者環境でインストール済み) 手順 かん…

Q. bit.ly のURL 短縮をターミナルからコマンドっぽく実行したい

A. 次の関数定義を使う # bit.ly URL Shortener # Dependencies: # * BITLY_ACCESS_TOKEN # * BITLY_USER_NAME # * jq command function bitly { short_url=$(curl -s --request GET \ --url "https://api-ssl.bitly.com/v3/shorten?access_token=$BITLY_ACC…

Q. HTML 入力フォームの「onpaste 無効化」を解除したい

A. 開発者コンソール から当該要素を見つけて、onpaste 設定値を無効化したノードに差し替える // 開発者コンソール上での操作 // eg.「パスワードの入力を確認してください」 // がペースト無効化状態にされた input 要素 el = document.querySelector('inp…

Q. ターミナルの操作内容を記録・共有したい

Q&A

A. asciinema を使う ターミナルの操作内容を記録したり、その内容を 公開・共有 することができる Mac であれば brew install, Ubuntu であれば apt-get install, その他プラットフォームは pip install と、各種環境で扱えるよう様々なインストール方法が…

Q. ディレクトリ・ファイル構造をテキストファイルに転写したい

Q&A

A. tree コマンドを使う tree > files_and_directories.txt

Q. Vim で行ごとにコピペした数値を連番にしたい

A. 対象とする数値の上で <C-a> これを行ごとに必要分繰り返す プラグイン を導入していれば <C-v> で矩形選択後に <C-a> で数値の加算をすることで、ビジュアルモードで連番振りができる Links Increasing or decreasing numbers | Vim Tips Wiki | FANDOM powered by Wiki</c-a></c-v></c-a>…

Q. Rust についてザックリ知りたい

A. 「Rust Crash Course | Rustlang」を視聴する インストールから cargo でプロジェクトの初期化、型や関数について一通り学習できる Link Rust Crash Course | Rustlang - YouTube

Q. その日のメモを日付つきファイル名に変更して 保存しておきたい

A. mv と併せて date コマンドを使用する # 毎日 or 不定期に書いているメモがある ls # => memo.md # その日の終わりに日付つきのファイル名に変更して # 次また「memo.md」で書き始められるように準備しておきたい mv memo.md memo_$(date "%Y-%m-%d").md …

Q. 毎週 Ruby に関連する情報をメールでお知らせして欲しい

A. Ruby Weekly を購読する Ruby Weekly が掲載する情報 最新情報 仕事情報 ブログ記事やチュートリアル コードとツール 「メールはヤダ」...? Ruby Weekly が掲載する情報 最新情報 たとえば 「Ruby 2.7 — Numbered Parameters – Brandon Weaver – Medium」…

Q. Alfred で日本の法律を検索したい

A. 次の URL を追加する : https://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0100/search?searchType=2&searchLawName={query}&abbreviationFlg=true Alfred の Web カスタムサーチに法令検索を追加している例 たとえば 調べたい内容が「雇用…

AppleScript で Slack のログを検索の操作を半自動化する

やっていることは単純で: Slack を操作可能にする 検索窓の呼び出し ( [Command] + [F] ) 検索語の入力 検索実行 ( [Enter] ) ひとが操作している部分を AppleScript に代わりにやってもらう

Q. Parcel + Livereload でブラウザの再読込を自動化したい

A. npm-scripts にスクリプトを定義する (Parcel そのものは本記事とは関係ない (parsel serve [dir_and_file_name] で自動更新できる)) セットアップ Liverelaod の追加 スクリプトの定義・実行 Links セットアップ 大まかな手順は次の通り: ブラウザに Liv…

Q. Alfred のキーワードから はてなブログを書き始めたい

A. カスタムサーチに「http://blog.hatena.ne.jp/my/?fragment=edit」を追加する Alfred のWeb サーチにブログを書き始められる URL・キーワードを追加 画像の例だと「blog」と入力して [Enter] で新規記事を書き始められる Link Alfred - Productivity App …

Q. クリックしたときに指定した anchor タグへスムーズにスクロール移動させたい

A. querySelector() + scrollIntoView({}) を使う // 次のような例が考えられる $('#foo').on('click', function() { document.querySelector('a[name="hello"]').scrollIntoView({ behavior: 'smooth' }); }); Links Smooth Scrolling | CSS-Tricks Element…

Q. 値があったときのみ検索したい (ActiveRecord)

A. scope と if と all を使う (自回答の転記) teratail.com class Board < ActiveRecord::Base scope :mypage_search, ->(user_id, search_params = {}) do where(user_id: user_id) .find_by_board_title(search_params[:title]) .find_by_update_date(sea…

Q. ブラウザ上ですぐに Vue プロジェクトを書き始めたい

A. CodeSandbox を利用する Codepen のように、Vue.js, React.js, Angular.js ほか、様々なプロジェクトをすぐに書き始められる CodeSandbox で Vue.js プロジェクト

Q. git の tag を新しい順に並び替えて表示させたい

(sort コマンドに渡すと意図した順番にならないので...) A. git tag -l --sort=-v:refname を使う ~/.gitconfig に alias として登録しておくと 忘れても思い出せる [alias] version-tags = "tag -l --sort=-v:refname" リポジトリによってはタグの数がもの…

Q. サポートが切れてるけど Ruby 2.2 をインストールしたい (warning: this use of "defined" may not be portable [-Wexpansion-to-defined])

A. 一旦 libssl1.0-dev をインストールする apt install libssl1.0-dev # 旧版の libssl をインストール rbenv install 2.2.10 # 旧版のRuby をインストール # インストールが終わったら libssl を現行バージョンに戻す apt install libssl-dev ruby-2.2.10 …

Q. Travis CI でエラー: "Migrations are pending. To resolve this issue..." が出てテストがコケる

A. rails db:migrate コマンドを実行する どこで...? → .travis.yml の before_script のタイミング language: ruby rvm: - 2.3.4 - 2.5.0 before_script: - RAILS_ENV=test bundle e rails db:migrate Travis CI のビルドの各ステップで実行されるタイミン…

Q. 「...path name... (from $GOROOT)」で peco がインストールできない

A. go のお作法に沿った適切なディレクトリに git clone する git clone https://github.com/peco/peco.git "$GOPATH/src/github.com/peco/peco"\ && cd "$GOPATH/src/github.com/peco/peco"\ && glide install\ && go build cmd/peco/peco.go\ && go instal…

Q. Google での検索方法をひとに教えるには?

A. LMGTFY を利用する 「ネットがあり、いろんな検索サービスがあって、あなたはこうして検索できるんだよ、さあ、クリックしてみて」といった流れで、検索方法を教えてくれる eg. 「How to Google it」という検索キーワードで探す 英語以外にも様々な言語で…

Q. エラー検出された行でカーソルが消えて操作しづらい (Ale + Vim)

A. let g:ale_echo_cursor = 0 で設定の無効化をする Cursor disappears when viewing error message · Issue #1334 · w0rp/ale - GitHub : 当該コメント Link w0rp/ale: Asynchronous linting/fixing for Vim and language server protocol integration - G…

Vim で分割したひとつのパネルを一時的に最大化したい/戻したい (参考リンク)

A. 関数を定義して、キー操作に割り当てる nnoremap <C-W>O :call MaximizeToggle()<CR> nnoremap <C-W>o :call MaximizeToggle()<CR> nnoremap <C-W><C-O> :call MaximizeToggle()<CR> function! MaximizeToggle() if exists("s:maximize_session") exec "source " . s:maximize_session cal</cr></c-o></c-w></cr></c-w></cr></c-w>…