サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
qiita.com/lighttiger2505
はじめに Vimといえば、みなさんご存じテキストエディタですが、テキストエディタである以前に一つのCLIコマンドでもあります。そんなCLIコマンドの利点一つにThe UNIX philosophyの定理として提唱されている『7. Use shell scripts to increase leverage and portability. (シェルスクリプトによって梃子(てこ)の効果と移植性を高める)』というものがあります。 今回は私も普段の仕事で利用しているVimの梃子としての側面をご紹介できればと思います。 GitコマンドとVim 今回Vimと組み合わせるのはシステム開発で避けては通れぬバージョン管理システムGitです。私は普段Gitを使用するときにはSourcetreeやGitKrakenなどのGUIクライアントを利用せずにCLIで操作をしています。 皆さんこう思われるかもしれません
sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し
はじめに 本日がiRidge Advent Calendarの最終日。そして私lighttiger2505のiRidge最終出社日(1日前)になります。 会社のAdvent Calendarで退職エントリと聞かれた方は、なんで?と言われるかもしれません。 これは上長から「lighttiger2505。最後にAdvent Calendarを書いていってくれ。」と言れたとき、冗談で「ネタがないですね。退職エントリなら書きますよ25日が最終出社日ですし。」と言ったところ。上長がノリノリで、じゃあそれでと言った結果です。 大丈夫かなとビクビクしながら書いております。 iRidgeに入るまで 私のエンジニアキャリアの開始点は出身地の愛知県にある独立系の大手SIerでした。 その会社ではプログラマで開発キャリアを積んだ後、作業工程でいう上流工程へ徐々にシフトし、ひいてはプロジェクトマネージャとして現場
tl;dr 私は以前、NeovimでモダンなPython環境を構築するという記事を投稿しました。 上記記事の投稿から1年8ヶ月が経過し、LSPや新たなVimの機能などによりVimを取り巻く環境には次々と大きな変化が訪れていることを日々感じており、VimConf 2019に参加したことでその感覚はより強い確信へと変わりました。 以前から上記記事の内容は最新の状態に則しておらず、現状を踏まえた新しい記事を書く必要性は感じていました。 本記事を書くにあたり前記事に対して上書きすることも考えたのですが、あえて別記事にすることで、 この数年でVimの開発環境にどれほどの変化が起こったのか。 以前との対比を残すと面白いのではないか。 と思いv2として新しく本記事を書くことを決めました。 Language ServerによりPythonのインテリセンスを提供する Vimに訪れた最も大きな環境の変化として
はじめに まずはじめにVimConfとは何なのか。 VimConf は、世界初かつ世界で唯一のコミュニティによって定期運営されているVimの国際カンファレンスです。 そう世界初かつ世界で唯一のコミュニティドリブンで開催されるVimの国際カンファレンスなのです。 Vimとは言わずとしれたテキストエディタです。 テキストエディタの国際カンファレンス?そう聞いたら「何じゃそりゃ」と思われるかもしれません。 けどよく考えてください。私達プログラマが最も触るツール筆頭といえばテキストエディタ(IDE含む)なわけです。 テキストエディタを効率よく使えるということはイコール仕事の効率化につながるわけで、 これについて突き詰めて考えることは実は非常に重要なことなのです。 それを示唆するようにVimConfの開催規模は年々大規模になっており、特に国際化の流れは非常に顕著に出ています。 去年開催されたVimC
tl;dr; PythonのLinterであるflake8はpep8に従っていろいろと教えてくれますが、 マニュアルで行うとなかなかに面倒な修正案を提示します。 近頃Golangの自動フォーマッタに慣れてしまった自分としては、 もう勝手にやってくれよ、とちょいちょい思ってました。 非同期にLinterを実行するVimプラグインとして有名なALEには、 エラー箇所を自動で修正するALEFixコマンドがあり、前々からやってみようかなと思っていたので、 この機会にALEでPythonコードのLintと自動整形をやらせてみたいと思います。 前提 私は素のVimではなくNeoVim使いなのでこっちを使った方法になります。 素のVimとはPythonのパス解決の仕方が異なるのでご注意ください。 NVIM v0.3.1 あとALEを使うのでALEのインストールはもちろん必要です。公式は丁寧に書いてあるの
インタラクティブフィルターとは ものすごいざっくりと説明すると以下のような感じ リスト表示する系コマンドの出力結果を受け取ってインタラクティブに選択させてくれるやつ リスト表示 -> 絞り込み -> 選択 -> 実行の4ステップをシームレスにつなぐにくいやつ 現代CLIの革命児 代表例として以下のようなコマンドがあります fzf peco インタラクティブフィルターの起動方法の違いについて ** 注:以下の説明はzshを前提にしています。bashやfishな方は適宜読み替えてください。** 早速実例と行きたいところですが、その前にインタラクティブフィルター(長いので以下IF)の起動方式の違いについて述べたいと思います。 はやくソース見してという方は飛ばして下に行っていただければと思います。 IFの表示情報ソース。つまりはリスト表示するコマンドの出力やその加工処理は、都度入力するには少々複雑
tl;dr キーマッピングはぶっちゃけ好み 私好みのキーマッピングはこうですよという話 お前のキーマッピングは間違っている的なレスお待ちしております おしながき キー マッピング対象
動機 株式会社iRidgeサーバーサイドエンジニアをやっています。lighttger2505です。 Vim以外の内容を書くのは久しぶりです。 さて弊社ではメインのDBとしてMySQLを使用しています。私は入社してから幾度なくDBにアクセスしてきましたが、 少し前の私には大きな不満がありました。 DBがローカルであればmysqlコマンド一発でアクセスできるのですが、 AWS RDS上に立っているDBサーバにアクセスするには踏み台サーバにssh後、mysqlコマンドを実行したり.. 踏み台サーバーにssh後、更にwebアプリケーションサーバにssh後、mysqlコマンドを実行したり... めんどくさいですね。 以下のように様々なめんどくささがあります DBサーバが遠くなればなるほどに、手間がかかる mysqldumpコマンド等でダンプ取るとかdumpファイルでリストアしたりとか、いちいちscp
tl;dr GoでCLIのツールを作るとき、皆さんフラグをどう実装しますか? 標準のflagパッケージでシンプルにしますか? それともCLIコマンドライブラリで複雑でリッチなモダンコマンドにしますか? 今回はいくつもあるCLIコマンドライブラリから、フラグを制御するライブラリに着目しようと思います。 まず手始めに標準のflagパッケージを見た上で、各ライブラリは何を解決したいのか。どのような方法で解決しようとしているのか。 この機会にちょっと眺めて遊んでみようと思います。 Go標準flagパッケージ Go製のCLIツールを見ていくと、どうもサードパーティライブラリを使っている方が多く印象を受けます。 このコマンド、中身どうなっているかな。 と見に行くと、ほとんどのツールは標準flagパッケージではなく、サードパーティライブラリをつかっています。 Go公式ツールや、古くに作られたツールなどは
注意 段取りが悪く書こうとしたことの3割程度しか書けておりません。 随時更新します。 動機 私はこれまでVimを軽量で高度なカスタマイズ可能なIDEとして使用してきました。 そのため、カスタマイズの方向性もIDEに近づける事を目指してきました。 しかし、カスタマイズを繰り返していくうちにプラグインを入れるまでもなく使用できる Vimに本来備わっている機能群の多様さに気が付きました。 IDEの機能は、基本的に人間がするまでもなく機械的に仕事を私達が解釈し易いようにラッパーし、 ちょうどいいタイミングで自動で動作しいます。 いわば単純な作業を下請けしてくれるサポーターが常時横に居てくれるようなものと言っていいでしょう。 対してVimが提供するのはあくまでテキストを編集する機能であり、私達が任意で動作させる必要があります。 それはIDEのように人間の代わりに何かを勝手にやってくれるものではなく、
概要 現在に至るまで、UnitTestの実行はvim-quickrunかC-Zで戻ってからターミナル叩いてた。 現状だとVimでテスト駆動開発するのにつらみがある。 テスト用の設定を作り込むときが来たのだ。 ちな実行するのはPythonのUnitTest 現状の問題点 :QuickRun QuickRunはテスト全体実行しかできない。と思う(テストランナーではないからね) 頑張ればできるのかもしれない。 時間のかかるテストとか遅いテストだと全体実行を何度もするのはつらい。一つのメソッドだけとかサクッとやりたい。 ターミナル実行 ターミナルに戻るのはだるい。 ターミナルでクラス単位やメソッド単位のテストを実行するには、パッケージ階層を打たなきゃいけない。つらい。 QuickFixでRedに飛びたいよね。ターミナルのエラー見る→Vim戻る→ターミナルにエラー見に戻るとか愚行だよね。 :make
動機 最近会社に入った後輩がVimを使っていました。 彼の.vimrcはプラグインが何も入っていない非常にシンプルなものでした。 これはしめたものだぞと、良さそうなプラグインを怒涛のように勧めまくろうと思ったのですが、 勢いのままに雑多な情報を与えては彼が混乱してしまうし、 同じような系統のプラグインであっても好みによるものが多いので 自分が使っているからと勧めるのは良くないと踏みとどまりました。 というわけで一旦自分の中でプラグインに関する情報をまとめた上で、 じっくりと彼に選んでもらいたいと思い。この記事をしたためました。 Vim以外の記事書けって上司に言われてたのに結局またVim書いちゃったよ... 新人の彼は、これから深い闇に染まり混沌を愛するDarkVimmerになるのか、 Vimのデフォルトを愛しシンプルさを信仰するWhiteVimmerになるのか、 はたまたVim以外のエディ
概要 ctagsって全然メンテされてなくね。後継とかないわけ? GNU global とかいうのがあるらしい Vimで飛べるようにしたら快適だよぉ 注意:ただのメモ インストール(mac) brewでズン
はじめに 今年からVimからNeovimに移行してもうすぐ一年になろうとしています。 Neovimを使いだしたきっかけは、暗黒美夢王がリリースしている数々の良プラグインがNeovimでしか使えなかったからでした。 逆に言えばそれ以外具体的にNeovimがVimとどう違うのか、何がすぐれているのか全く知りませんでした。 VimConf2017で刺激を受けた私は、その膨大なインプットのなかでもっと私が使っているエディタについて知る必要があると考えました。 本稿ではNeovimとVimの違いを調べ、互いにどのような影響を与えているのかを述べます。 注意 私は中学生レベルの英語能力なので解釈に誤りがあることが多々あると思います。 もし誤りを見つけたのであれば教えていただければ幸いです。 Neovim Introduction そもそもNeovimとはなにかREADMEを読んでみてもピンと来なくて、
経緯 転職してPythonメインの会社で働いてます エディタハラスメントはなくなってVim使ってもいい会社です VimでPythonをゴリゴリかける環境を作ろう 追記 以前この記事を書いてからそこそこ経ちました。 いまだに、たまにイイねとかが飛んできて、ありがたい気持ちとともに、 記事作成当時とはだいぶvimrcも代わり、内容が古いままで申し訳ないなと思い追記をさせて頂きました。 各プラグインの設定も記載したので参考にしていただければ幸いです。 なお一通り設定するとこうなります。 必須 会社に入ってからvimの設定をすべてneovim用に書き直しました。 今環境構築するならサクサク動くneovimでやってやりましょう。 vim8のプラグイン対応状況が変わり、deoplete以外であればvim8で動きます。 しかし私はdeopleteが使いたいのでneovimです。 neovim 0.2.0
qiita.com/lighttiger2505@github
動機 私の現在働いている会社では、GitLabを使用して開発を行っています。 その中でIssueやMRを作成するたびにWeb画面がもっさり表示され、本来するべきである 書く。という作業にたどり着くまでに非常に多くのステップや時間が費やされることに不満を感じていました。 私は現在labコマンドというGitLabのCLIクライアントを作成しており、 上記不満を解消するため新規投稿コマンドを実行するとテキストエディタを開いてIssueやMR内容を記載し、 ファイルを保存することで、編集内容がそのままリクエストされるという機能を思いつきました。 要するにgit commitした瞬間に発動するアレです。 アレな動作の動画 本日はGoでアレな機能を作る過程でできたマイクロコードを用いて、アレの実現方法をご紹介致します。 なおCLIで細々オプションを指定して書いていっても良いのですが、 改行が含まれたり
はじめに VimConf2017に参加してきました。最近東京に引っ越してきたので、今回が初参加となります。 本日はVimConf2017に参加後に合コン(Go Confarenceでない)に参加して、人生で最も幸せな日となりました。 とにかくプレゼンの内容が凄まじい濃度となっていて、それぞれの人の得意分野が十二分に生かされたとてつもないインプット量に、ただただ圧倒されました。 なので、酒が入った勢いで感想をつらつらと述べ、この刺激による inspire the next を忘れないうちにつらつら述べます。 発表内容 haya14busa/Vim, Me and Community Vim, Me and Community 個人的には、今回のベストスピーカーだったと思います。1時間があっと言う間にすぎてhaya14busaさんのVimの旅と今に至る流れに、つい涙腺がゆるくなるほどでした。
概要 会社で自分の強みというテーマの勉強会があったので CLIのカスタマイズについて発表しました。 自分はシェル芸人でもないし著名なVimプラグイン開発社でも無いのですが、 今の会社に入社して七ヶ月ほどして、 意外とローカルマシン上でも素のbashでCLI操作している人が多いことに気が付きました。 CLIカスタマイズしている人と語り合いたいと常々思っていた私は、 会社内でそういう人を作ることを目指して資料を作り、軽く引かれるくらいの熱量で30分ほどプレゼンしました。 しかし30分で語れることなどたかが知れています。 語りきれなかった自分の考えをここにまとめ、プレゼンの補足資料としたいと思います。 発表資料は以下の通りです。GodをGotとスペルミスしましたが自分への戒めとして残したままにしています。 1. なんでCLIなんて使ってんの?マゾなの? マゾなの?という問に関してはまあおそらくY
このページを最初にブックマークしてみませんか?
『@lighttiger2505のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く