Vimとsedで制御文字を取り除く

はじめに 以前、OSを跨ぐ作業により異なる改行コードが混在してスクリプトが実行出来なかったという事がありました。https://momozo.tech/2019/11/23/fac%e6%94%b9%e8%a1%8c%e3%82%b3%e3%83%bc%e3%83%89/ 異なるエディタを使っていたり、変態的なキーマッピング設定を行っているなど、理由は様々ですが意図しない文字コードがソースコードに入り込む現象は意外と多いです。(他には.editorconfigを作っていないとかも考えられますかね。) その結果プログラムが動かず、あげくデバックに何時間も要したなんて悲しい過去が、エンジニアならば心当たりがきっとあるはずです。そこで今回はVimで制御文字を調査してsedで簡単に除去する方法をまとめたいと思います。 Vimによる制御文字の調査 まずはVimで制御文字を調べる方法です。制御文字の一覧はWikipediaが簡潔でリファレンスに丁度いいです。 Vimにおける制御文字の入力方法は挿入モードで<Ctrl... 御覧になる | 御シェアする

先頭にシバンを挿入するVimスクリプト

シバンとは まずシバンとは下記の様なシェルスクリプトの先頭行に記述するインタプリタの指定の事です。 #!/bin/sh ※シェルスクリプトが後ろに続く 自分も難しい事は分かりませんが、そのシェルスクリプトがどのシェル上での実行を想定しているのか明記する為のものだと思っています。 TL;DR シバンを先頭行に挿入するVimスクリプトを書いてみます。Exコマンドラインから:Shebangと実行すると、現在開いているバッファの先頭行にシバンが追加される仕様です。 "... 御覧になる | 御シェアする

tmuxセッション・ウィンドウ・ペイン操作まとめ

はじめに tmuxとは複数の端末セッションを管理し、同時に複数のコマンドラインプログラムを実行出来るやつです。Linux標準だとscreenがそれにあたります。 最近になってようやくまともな使い方を覚えたのでまとめたいと思います。まずtmuxは大きい方からセッション→ウィンドウ→ペインという単位で管理するという事を理解して下さい。そしてそれぞれの操作方法を知りましょう。 また以下のコマンドはtmuxコマンドといい、<Prefixキー>:からtmuxコマンドラインに入り入力するものです。ちなみに自分の場合<Ctrl... 御覧になる | 御シェアする

rmコマンドでファイルを消さなければいいのでは?

もしもrmコマンドがファイルを消さない世界だったら 幸せな世界なんじゃないでしょうか。エンジニアならば誰しもが一度はrmコマンドでうっかりファイルを消去してしまったという経験がお有りかと思います。気をつけていても忘れた頃にやってしまうあのミス。バックアップやスナップショットを取っていたり、特殊な条件下なら復旧も可能ですが残念ながらそうでない場合も多いです。2回目ともなればもはや諦めがつきダメージが少ないかもしれません。 そもそもこんなに手軽にファイルを消去出来てしまうなんて冷静に考えたらおかしいことではないでしょうか。WindowsやMacにはゴミ箱というセーフティネットがあるのにも関わらず、どうして昔からLinuxにはゴミ箱が搭載されないのか。 そんな事を考えながらふと思ったのですが、無いなら作れば良いんじゃないでしょうか。ゴミ箱を。 rmコマンドを変える rmコマンドのエイリアスを作成することで、rmコマンド本来の処理をオーバーライドしてしまいます。まずは次のようなシェルスクリプトを書いて下さい。 #!/bin/bash TIMESTAMP=`date... 御覧になる | 御シェアする

乗換案内取得スクリプトを一行で実装してみた

乗換案内取得スクリプトとは 今回作成する乗換案内取得スクリプトとは読んで字の如く乗換案内を取得するスクリプトです。例えば最寄り駅から新宿駅までの乗り換え案内及び、乗車時間、料金等を取得可能です。 この記事を読まれている多くの方が毎朝乗り換えをスマホからアプリやブラウザを使って検索されているのではないでしょうか。そんな単調作業をPCなら一行で、スマホならワンタップで乗換案内を取得する方法をまとめてみました。 openコマンド 乗換案内取得スクリプトと仰々しい言い方をしていましたが、早い話がopenコマンドを実行してブラウザ起動→検索をコマンド化してしまおうということです。前回気温を取得するスクリプトを作成しましたがそれと全く同じロジックです。 下記のコマンドを実行してみて下さい。 $... 御覧になる | 御シェアする

気温を確認するスクリプトを作成

はじめに 今回は気温及び天気を確認するスクリプトを作成したいと思います。出掛ける前とかに気安く外の天気や気温が分かったら、窓を開けて確認する必要がなくて準備が楽ですよね。スマホを開くのすら面倒な私はコマンドで確認出来るようにしたいと思います。 実装方法についてですが世の中には気温APIなるものが多く提供されていますが今回は利用しません。何故ならAPIは急にサービスが中止になったり、意図せずダウンしてしまう可能性があるため出来る限り自前で解決したいからです。またアカウントを登録したりするのが面倒という理由もあります。 今回は誰の影響も受けずに気温を取得するスクリプトを作成してみます。 openコマンド 今回はopenコマンドを使います。openコマンドはmacOSに標準搭載されているファイルを開くコマンドです。ターミナルでopen... 御覧になる | 御シェアする

fzfでターミナル作業を効率化

fzfとは fzfとはざっくり言うと出力結果を一覧で表示して選択出来るUIを提供してくれて、その中で曖昧検索が出来て選択したものを抽出して出力してくれるものです。ファジーファインダーと呼ばれるツールの一つです。普段のコマンドと組み合わせることで作業を効率化出来るのでとりあえず入れておいて損はないです。 以前fzf.vimというVimプラグインを紹介しましたが、今回はfzfをターミナルに導入してみたいと思います。ターミナルでの作業が楽になるような使い方を色々とまとめてみましたので~/.zshrcに記述して使ってみて下さい。 fzfインストール Macのzshが動作保証環境です。下記のコマンドでfzfをインストールして下さい。 $... 御覧になる | 御シェアする

Mac プレビュー でPDFを途中から開く方法

MacでPDFを開くと MacでPDFを開くと恐らくプレビューアプリで開かれるかと思います。その際毎回PDFの先頭から開かれてしまいスクロールするのが面倒臭いという経験はございませんでしょうか?今回はプレビューアプリでPDFを開く場合にこの問題を解決する方法をご紹介致します。 生粋のマカーであればご存じないかもしれませんが、PDFはブラウザでも閲覧することが出来ます。何なら画像も見ることが出来ます。あるいはアドビをご利用の富裕層の方もいらっしゃるかもしれません。(何でこのページを読んでいるんだ?)申し訳ございませんが、今回解説する方法は先述の通りMacのプレビューアプリを使った方法のみでございます。 プレビューとは上の画像のアイコンのアプリです。Finderの中からPDFファイルを開けばDockで確認出来ます。 プレビュー... 御覧になる | 御シェアする

ディレクトリスタック〜もしかしてcdコマンド使ってませんか?〜

はじめに ディレクトリを移動する際に使われる、ディレクトリスタックという概念をご存知でしょうか?ディレクトリ移動はcdが圧倒的な知名度を誇っているので、便利な機能ですが意外と知られていないかと思います。 例えば決まったディレクトリを頻繁に移動することがあり、その場所が分からなくなる人などには丁度良い機能ですので、是非使ってみることをおすすめします。 使い方 普段のディレクトリ移動の感覚でcdの代わりにpushdで移動先を指定してみて下さい。 $... 御覧になる | 御シェアする