はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    大阪万博

『zenn.dev』

  • 人気
  • 新着
  • すべて
  • GopherがRust入門したので違いをまとめてみた

    211 users

    zenn.dev/skanehira

    はじめに ウホウホ。 Rustを使い始めてちょうど2年くらい経って、すこしRustのことがわかってきたので、改めてGoとRustのそれぞれの違いを整理したいなと思いこの記事を書きました。 筆者はウェブ開発の経験しかないので、ウェブを中心にまとめています。 気づいたらかなりな量になってしまったのとGopher向けにRustを紹介するような記事になってしまいましたが、よければ読んでみてください。 筆者について Goを使い始めて7年ほど経っていて、これまでCLI/TUIツールをいくつか作ってきました。 スペシャリストではないですが、プロダクトでGoを書く分には特に問題ないレベルかなと思います。 Rustは2022年夏ころから使い始めてちょうど2年ほど経ちました。 なにかツールを作ったわけではないですが、勉強がてらにいくつか作ったもの・書いた本があります。 普通にRustを書く分には問題ないですが

    • テクノロジー
    • 2024/08/12 09:29
    • Rust
    • go
    • あとで読む
    • golang
    • Go言語
    • プログラミング
    • techfeed
    • tutorial
    • Vim前線 2024年版

      3 users

      zenn.dev/skanehira

      はじめに 本記事はTechFeed Experts Night#32 〜 【VSCode, Vim, Emacs】エンジニア向けエディタ最新動向!の発表資料です。 2024年7月時点までのVim界隈の動きをざっくばらんと紹介していきます。 Vim界隈の雰囲気を感じ取ってもらえたらと思っています。 Bram氏の訃報、そして新たな Vim 開発体制へ Vimの生みの親であるBram氏が2023年8月3日に亡くなりました。 Vimを生み出し、これまでずっとVimの開発を支えてきたBram氏が居なくなり、ぼくも含め多くの悲しい声がありました。 改めて御冥福をお祈りします。 そんな中で、長年Vimの開発に貢献されたmattn氏が「追悼 Bram Moolenaar ~Vimへの情熱と貢献を振り返る」という記事を書かれています。 Vimの歴史やBram氏の人物像、mattn氏との逸話などが書かれていて

      • テクノロジー
      • 2024/07/03 21:51
      • あとで読む
      • JavaScriptの正規表現でgフラグを使う際は気をつけた方が良い

        8 users

        zenn.dev/skanehira

        はじめに 先日こちらのツイートが流れてきました。 動画内では次のことをやっていました。 何が起きているのか、まったくわからなかったので気になってこの挙動について調べて備忘録として残します。 > const r = /boop/g undefined > r.test("boop") true > r.test("boop") false > r.test("boop") true > r.test("boop") false > gフラグとは JavaScriptを書いている方は一度くらいは/foo/gみたいな正規表現を書いたことがあるかと思います。 このgフラグをつけることで文字列内のすべてのfooが対象になります。 たとばfoobarfooの場合/foo/だと先頭のfooのみが対象になりますがgフラグを使うとbarのあとにfooも対象になります。 詳細はMDNを参照して下さい。 las

        • テクノロジー
        • 2024/05/29 09:52
        • あとで読む
        • なぜSQLiteはバイトコードを使うのか

          147 users

          zenn.dev/skanehira

          以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

          • テクノロジー
          • 2024/05/17 10:29
          • SQLite
          • データベース
          • あとで読む
          • sql
          • DB
          • database
          • データ
          • プログラミング
          • Wasmの概要|RustでWasm Runtimeを実装する

            3 users

            zenn.dev/skanehira

            • テクノロジー
            • 2024/04/21 17:51
            • RustでWasm Runtimeを実装する

              134 users

              zenn.dev/skanehira

              Rustで"Hello World"を出力できる小さなWasm Runtimeをゼロから実装して、WasmとWASIの動作原理を理解する本です。

              • テクノロジー
              • 2024/04/20 19:11
              • Rust
              • WebAssembly
              • wasm
              • あとで読む
              • wasi
              • プログラミング
              • 書籍
              • programming
              • 本
              • WasmでLLMが動く仕組みの解説

                4 users

                zenn.dev/skanehira

                この記事は WebAssembly Advent Calendar 2023 16日目の記事です。 はじめに 先日、次のブログでWasmEdgeを使ってLLMを動かすことができることを知りました。 以前RustでWasm Runtimeを実装した身として、どのような仕組みで動いているのか気になって調べたので、その仕組について解説してきます。 前提知識について 解説するまえに、いくつかの前提知識について解説していきます。 Wasmでの関数呼び出し Wasmではモジュール内に定義した関数を呼ぶことはもちろんできますが、モジュール外部の関数をimportして呼び出すこともできます。 たとえば、次のWATはcalcというモジュールからdoubleという関数をimportして使うことができます。 (module (import "calc" "double" ;; importするモジュールと関数

                • テクノロジー
                • 2023/12/16 11:33
                • RustでWasm Runtimeを実装してみた

                  54 users

                  zenn.dev/skanehira

                  はじめに 最近Wasmの勢いがすごくて、ブラウザでPostgreSQLを動かせたり、DockerでWasmを動かせたりできます。 以前からWasm自体に興味があって、動作原理を知りたいと思ってchibiwasmというRuntimeを実装してみました。 Rustを選んだのは、最近Rustを勉強していてそれに慣れるためです。 苦労しましたが、*.wasmがどのようにして実行されるのかを理解できたので良かったです。 今回はWasmのバージョン1の仕様を満たすように実装して、テストスイートは正常系と実行時異常系のテストは通しましたが、バリデーションなどのテストはスキップしています。 また、少しだけバージョン2の命令とWASIを実装していて、RustからビルドしたHello Worldを標準出力するwasmバイナリも動きます。 本記事は実装したWasm Runtimeの概要と、実装を通して学んだこと

                  • テクノロジー
                  • 2023/04/24 10:47
                  • rust
                  • WebAssembly
                  • wasm
                  • あとで読む
                  • docker
                  • Rustのrvalue static promotionについて

                    4 users

                    zenn.dev/skanehira

                    #[derive(Debug)] struct Foo {} fn foo<'a>() -> &'a Foo { let foo = &Foo {}; foo } fn main() { dbg!(foo()); } この例ではコンパイルはできる、というのが答えです。 この記事では「なぜコンパイルできるのか」について解説していきます。 コンパイルできる理由 Rvalue static promotionにより、Fooは静的領域に保持され、どこからでも参照できるためです。 Rvalue static promotionとは 簡潔に説明すると「コンパイル時に確定できる値かつその値は不変」の場合は静的領域に値を確保し、参照できるようにする rvalueというのは place expression 以外の式のことを指す place expression というのはメモリ位置を表現した式のこと たと

                    • テクノロジー
                    • 2023/01/04 19:55
                    • Rust
                    • techfeed
                    • Rustのライフタイム推論入門

                      35 users

                      zenn.dev/skanehira

                      はじめに 「ライフタイムなんもわからん」ので、勉強した内容を整理しました。 Rust初心者なので、間違いがあったらコメントにて指摘頂けるとうれぴっぴです。 ライフタイムのおさらい Rustはすべての参照にライフタイムを持ちます。 明示的にライフタイムを指定する場合は'aのような、ライフタイムパラメータを使用する必要があります。 しかし、すべての参照にライフタイムパラメータを書くのは手間がかかるので、 一定のルールに沿ってライフタイムを推論しルール外のものはコンパイルエラーという仕様になっています。 ライフタイムパラメータを書ける場所は「ライフタイムポジション」と呼ばれ、次の場所で書くことができます。

                      • テクノロジー
                      • 2022/12/18 18:14
                      • Rust
                      • あとで読む
                      • 開発
                      • IT
                      • Rustで簡単なLispを書いてみた

                        6 users

                        zenn.dev/skanehira

                        初めに 先日Rustの勉強で、jpmens/joをRustに移植してみたんですが、 ちょっと課題がシンプル過ぎたので、Lisp処理系を書いてみました。 本記事は「こんなことをやったよ」くらいの内容で、実装について細かくは書いていないため、 それでも興味ある方は読んでもらえたら嬉しいです。 rispについて 四則演算、変数、関数しか動かない簡単なインタプリタです。 実装 Lisp自体がよくわかっていないので、お気楽 Common Lisp プログラミング入門を読みつつ雰囲気を掴んでいまた。 Lispのリスト構造は(関数 引数...)という感じなので、stack/pop すれば動くかなと思って、最初はこんな感じに雑に実装していました。 初期実装 fn eval(&mut self, chars: &mut Peekable<Chars>) -> String { loop { let ch =

                        • テクノロジー
                        • 2022/07/23 19:11
                        • Vimでk8sを操作するプラグインを作った

                          3 users

                          zenn.dev/skanehira

                          初めに こんにちは、森に帰省中のゴリラです。 最近、完全ガイドでkubernetesの勉強をしていますが、覚えること、理解することがなかなか多くてたいへんです。 さて、kubernetesを使ったことがある人なら、一度くらいk9sを使ったことがあるかと思います。 これはとても便利なもので、podを見たりコンテナにアタッチしたりと、いろいろできます。 ただ、自分は普段Vimをメインに使っているので、できればVim上で同じことをやりたいと思って、k8s.vimというプラグインを作りました。 k8s.vimの概要 UIはこんな感じになっています。 基本的にk8s://*という仮想バッファを開くとリソースを見れたり、操作できたりします。 現時点では次のことができます。 Pod関連 一覧 コンテナ一覧 describeの出力 yaml出力 Node関連 一覧 describeの出力 たとえば、pod

                          • テクノロジー
                          • 2022/06/22 23:41
                          • Vimmerに好きなコマンドを聞いてみた

                            44 users

                            zenn.dev/skanehira

                            始めに みなさん、最近はいかがお過ごしでしょう? ぼくは最近ゴリラ.vimでヘルプを読み漁っています。 もしVimヘルプを探検してみたい方はぜひヘルプ読書会にご参加ください。 さて本題ですが、 普段Vimのプラグインの人気ランキングや紹介などをよく目にすると思います。 しかし、Vimのコマンドについてのランキングや紹介はあまり見かけません。 ということで、Twitterで好きなコマンド(ノーマル、Exなど)について募集してみた結果がおもしろかったので紹介していきます。 結果 アンケート結果をカテゴライズしてみました。

                            • テクノロジー
                            • 2022/02/25 07:33
                            • vim
                            • あとで読む
                            • Vimにおけるカーソル移動の効率化

                              202 users

                              zenn.dev/skanehira

                              初めに 最近Vimにおけるカーソル移動の効率化について少し考えていて、自分なりに どんなカーソル移動方法があるのか? それぞれのメリット・デメリットは何か? について整理&改善をしたくて、この記事を書きました。 後半にカーソル移動の改善のために作ったプラグインの紹介もあるのでぜひ最後まで読んでみてください。 テキストの編集の動作について 基本、どんなエディタでもテキストを編集するのに次の動作を繰り返すと思います。 移動先の座標を認識(目で見て脳で認識) キーボード・マウスを使ってカーソルを対象の座標に移動 対象のテキストを編集(カット・置き換え・削除など) これらの動作を前提、どんなカーソル移動の方法があるかについて整理していきます。 マウスによるカーソル移動 多くの人はマウスを使用しているかと思うので、こちらの方法はもっとも一般的といえるでしょう。 個人的に、マウスにおける最大のメリット

                              • テクノロジー
                              • 2022/01/30 13:51
                              • vim
                              • あとで読む
                              • vi
                              • IT
                              • tips
                              • Vimでサクッとコードから画像を生成するプラグインを作った

                                3 users

                                zenn.dev/skanehira

                                使い方 こんなん感じでサクッと画像を生成できます。 使用できるオプションは次のとおりです。 詳細はgermaniumを参照してください。 デフォルトでは生成された画像はクリップボードにコピーされますが、ファイルに出力したい場合は:Germanium -o=out.pngという感じでファイル名を指定すればOKです。 :Germanium [-obfls] Generate image of source code. You can use options bellow. -o={path} Write output image to the {path}. -b={color} Specify background color of image. -f={font} Specify font. -l={language} The language of syntax highlight. -

                                • テクノロジー
                                • 2021/12/04 14:30
                                • vim
                                • プラグイン
                                • 画像
                                • コンテナで動くGoアプリをデバッグする方法

                                  62 users

                                  zenn.dev/skanehira

                                  初めに 最近開発環境を整備していて、コンテナでGoアプリケーションをリモートでデバッグするのにちょっと面倒だったので、自分のメモも兼ねてやり方を残しておきます。 要件 プロジェクトによりますが、今の現場では主要エディタがVSCodeです。 もちろんVimユーザー(うち一人はぼく)がいるので、ターミナルでもデバッグできるように対応する必要があります。 また、コード変更を反映させるために都度イメージをビルドしてコンテナを再作成するは開発スピードが落ちるため、コンテナ再起動だけで反映されるようにする必要があります。 デバッガのしくみ Goにはdelveというデバッガがあります。 delveはClient-Serverモデルになっていて、次の2つのプロトコルで通信が可能になります。 JSON-RPC DAP JSON-RPCはdelveのCLIに使われています。 DAPはMicrosoftが策定し

                                  • テクノロジー
                                  • 2021/11/27 10:36
                                  • go
                                  • debug
                                  • golang
                                  • コンテナ
                                  • あとで読む
                                  • vscode
                                  • デバッグ
                                  • 開発
                                  • vim
                                  • 技術記事を書く・読むときの心構え

                                    30 users

                                    zenn.dev/skanehira

                                    初めに 最近ちょっと技術記事を書く人への批判とその批判をする人たちをたたく、というような場面を目にして、以前から思うところがあったのでこの度自分の考えを記事にしました。 そういう状態を画像にするとこんなイメージです。 この記事で少しでも優しい業界になれたらなと思っています。 結論 簡潔にまとめるなら「書く側は正確に、読む側は寛大に」です。 記事を書く側の心構え 受け取り方は人それぞれなので、100%伝わる、理解できる文章はありません。 ですがそれに近付けることはできます。具体的に 適切なタイトル わかりやすい文章と流れ 正確な情報と言葉 動画、GIF、図を用いた説明 上記を意識すればよいかなと思っています。 ほかに注意すべき点があれば、ぜひコメントください。 読む側の心構え 相手が一所懸命記事を書いたということを忘れないようにしましょう。 また読んだ記事に、何かしらのコメントをするなら次の

                                    • テクノロジー
                                    • 2021/08/11 22:12
                                    • 文章
                                    • あとで読む
                                    • 技術
                                    • Vimプラグイン開発入門

                                      4 users

                                      zenn.dev/skanehira

                                      Vimプラグイン開発入門

                                      • テクノロジー
                                      • 2021/08/11 20:43
                                      • ブラウザをターミナル代わりにするrttyを作った

                                        56 users

                                        zenn.dev/skanehira

                                        初めに 以前にブラウザからターミナルを操作したくて、周りの方に聞いたらSecure Shell Appを教えていただいたんですが、なぜか自分の環境ではうまく動作しませんでした。 他にも似たようなことができるツールはありましたが、メンテナンスがされていなかったりビルドもインストールできなかったりして使えなかったので、自作しました。 しくみ自体はイメージできていたので、そんなに難しくないだろうと思っていましたが、意外と罠があってそれを解決するのに時間がかかってしまいました。 rttyの概要と使い方 rttyはプロセスの入出力をwebsocketを通して、ブラウザでターミナルのような操作を可能にするCLIです。 簡単にいうとブラウザがターミナル代わりになる、という感じです。 +---------+ http +------+ stdin +------+ | browser | <=======

                                        • テクノロジー
                                        • 2021/07/24 10:27
                                        • terminal
                                        • あとで読む
                                        • browser
                                        • ブラウザ
                                        • 新しい docker compose

                                          299 users

                                          zenn.dev/skanehira

                                          初めに docker composeが使えるようになったので、それについて書いていきます。 正式名称はDocker Compose CLIです。 動作検証した環境は次のとおりです。 $ docker version Client: Cloud integration: 1.0.14 Version: 20.10.6 API version: 1.41 Go version: go1.16.3 Git commit: 370c289 Built: Fri Apr 9 22:46:57 2021 OS/Arch: darwin/arm64 Context: default Experimental: true ... Docker Compose CLIとは 簡単にいうとdocker-composeのGo実装です。docker-composeと互換しています。 docker-composeに置

                                          • テクノロジー
                                          • 2021/06/04 20:48
                                          • docker
                                          • あとで読む
                                          • docker-compose
                                          • go
                                          • docker compose
                                          • cli
                                          • Slackのreminder使いづらすぎたのでCLIを作った

                                            4 users

                                            zenn.dev/skanehira

                                            初めに みなさんSlackの/reminderを使っていますか? 個人的に次の理由でめちゃくちゃ使いづらいなと感じています。 書式覚えられない(特に繰り返し) /reminderと入力したときに出てくるUIは繰り返し設定に対応していない しかし、reminderはMTGの忘れ防止にとても役に立つので、やはりなくせないものです。 なのでコマンドをわかりやすいUIで出力するCLIを作りました。 こんな感じです。 使い方 導入方法はリポジトリを参照してください。 slack-reminderを実行すると選択肢を選びながら入力しつつ、最終的にコマンドが出力されるので、それをSlackに貼るだけです。 1回のみの場合は次のように日時と宛先、メッセージを入力します。 MacbookPro13% slack-reminder ? Kind of remind onetime ? Date(YYYY-MM

                                            • テクノロジー
                                            • 2021/05/13 10:55
                                            • article
                                            • あとで読む
                                            • GoでCLIを作る時のテンプレートリポジトリを作った

                                              6 users

                                              zenn.dev/skanehira

                                              初めに 普段Goを使ってCLIなどを作ることが多く、毎度CI/CDをセットアップしたり、go getでライブラリを導入するが面倒なのでテンプレートリポジトリgo-cli-templateを用意しました。 基本的に自分用ですが、ちょっと手を入れればみなさんも使えるので軽く紹介していきます。 デフォルトセット GitHub Actions(以降GA)を使って以下を設定してあります。 golangci-lint test binary release golangci-lintはGAがあるので、それをそのまま使っています。 使う人の好みもあるので.golangci.yamlはあえて設置していないです。各自好きに置いてくださいという感じです。 binary releaseはgoreleaserのGAを使っています。タグをつけてpushするとReleasesにCHANGELOG、ハッシュ、各OSのバ

                                              • テクノロジー
                                              • 2021/04/22 19:25
                                              • yamlをインタラクティブに絞り込みできるCLIを作った

                                                3 users

                                                zenn.dev/skanehira

                                                初めに 最近仕事で少しk8s周りを触っています。k8sのマニフェストはyamlですが、 kustomizeなどを使ってリソースをまとめたりすると、どうしても長くなってしまい可読性が下がってしまう問題があります。 そこで、jidのようなインタラクティブに絞り込みできるツールがほしいなと思って調べたんですが、 見つからなかったのでydというCLIを作りました。 使い方 ydではパイプ、ファイル、URLからyamlを読み込めます。 $ yd file.yaml $ yd https://sample.com/file.yaml $ yd < file.yaml $ yd -f file.yaml CLI実行後、画面上部にクエリを入力する箇所があるので、そこにクエリを入力してyamlをインタラクティブに絞り込んでいきます。 たとえば次のようなyamlがある場合.tagsと入力すると画像のように絞り

                                                • テクノロジー
                                                • 2021/03/21 08:14
                                                • LinuxでもEmacs風なキーバインドを設定する

                                                  8 users

                                                  zenn.dev/skanehira

                                                  Autokeyとは 簡単にいうとキーバインドを設定できるソフトウェアになります。 ちゃんと調べていないですが、イメージとしてはX11を通してソフトウェアに送信されるキー情報を書き換えるという感じでしょうか。 これを使用することで、キーバインドを自由に設定できます。 Ubuntuでは、次のコマンドで導入できます。 なぜAutokeyなのか Ubuntuユーザーであれば知っていると思いますが、Gnome Tweak Toolというアプリケーションがあります。 このアプリケーションではキーバインドをEmacs風に変更できます。しかし↓/↑を<C-n>/<C-p>で代用できない、といった適用しきれていない問題があります。 そこでAutokeyも併用することでさきほどの問題を解決できます。今のところ特に問題なく使えているので設定を気を付ければ競合は起きないと思います。 設定 設定は大きく分けて次の3

                                                  • テクノロジー
                                                  • 2021/03/10 02:11
                                                  • emacs
                                                  • ubuntu
                                                  • linux
                                                  • GitHubのTUIツールを作った

                                                    46 users

                                                    zenn.dev/skanehira

                                                    機能 現時点ではissue関連の機能が実装されています。未実装の機能はこちらを参照ください。 Issue list create close open open browser preview edit Issue comment list preview delete 基本的な使い方 リポジトリを指定して起動するか、指定しない場合はカレントディレクトリのリポジトリが自動で指定されます。 起動後にissueの検索が行われ、一覧が表示されます。パネルを移動するにはCtrl-N/Ctrl-Pを使います。 検索 github-tuiではsearchのクエリを使ってissueを検索できます。現時点ではissueのみ検索可能ですが、将来的にはPRなども検索できるようにする予定です。 どんなクエリが使えるかは、searchのドキュメントを参照していただければと思います。 たとえばissueのタイトルと

                                                    • テクノロジー
                                                    • 2021/02/22 23:54
                                                    • github
                                                    • あとで読む
                                                    • git
                                                    • tool
                                                    • Neovimを始めた話

                                                      6 users

                                                      zenn.dev/skanehira

                                                      初めに 11月中旬くらいからNeovimを使い始めました。 Neovim自体は以前から知っていたが、自分が普段作っているプラグインがVimでしか動かないことや、Vimでだいたい満足しているのでなかなか使おうって気になれませんでした。 そこでgh.vimというプラグインのNeovim対応をするため、Neovimをビルドしてから少しずつNeovimを使うようになりました。 今日はVimを使ってきた筆者がNeovimを少し使った感想の話をしていきます。 NeovimとVimの違い Vimは後方互換を大事にしているので劇的な変化があまりないのに対して、 Neovimは時代に合わせてよりモダンな技術を積極的に取り入れる、というスタンスの違いがあるように感じています。 Neovimのモダンな技術といえば次でしょうか。(ほかにもっとあるかもしれないが…) ターミナル LSP(builtin) リモートプ

                                                      • テクノロジー
                                                      • 2020/12/10 21:11
                                                      • Vimで快適に記事を書くため環境

                                                        4 users

                                                        zenn.dev/skanehira

                                                        始めに こんにちは、Neovimを使い初めたゴリラです。 普段zenn.devに載せる記事をVimで書いています。 しかしVimで記事を書くとどうしても画像アップロードとリンク挿入の手間がかかってしまったり、 誤字脱字があったり、文章表現がバラバラになったりという問題があります。 こういった問題を長らく放置してきましたが、重い腰を上げて対策しました。 本記事は、Vim/Neovimで快適に記事を書くためにどんなことをしたのかについて解説していきます。 環境 筆者の環境は次になっています。Node.jsとnpmとGoは必要です。 Environments Version

                                                        • テクノロジー
                                                        • 2020/12/07 12:13
                                                        • vim
                                                        • tmuxのpopupが便利

                                                          8 users

                                                          zenn.dev/skanehira

                                                          初めに 仕事で複数プロジェクトを同時に使っていることが多く、tmuxを愛用しています。 tmuxを使えば、簡易に画面を増やしたり分割したりできますが、次のような不便さを感じるときがあります。 画面分割すると画面サイズが小さくなる 画面数が増えるとよく使うプロジェクトの画面をすぐ出せない そこで、最近入ったpopup機能を使ってみたところ上記の課題を解決できそうだったので、軽く紹介をしていきます。 こんな感じで画面分割ではなく、画面中央にウィンドウを出せます。 やり方 筆者の環境は次になっています。 tmux next-3.3 fish version 3.1.2 @yutkatから教えていただいたものをベースにfishの関数を用意します。 bashやzshの方は適宜変えてみてください。 function tmuxpopup -d "toggle tmux popup window" set

                                                          • テクノロジー
                                                          • 2020/10/25 21:24
                                                          • Vimの:wと:rの便利Tips

                                                            296 users

                                                            zenn.dev/skanehira

                                                            始めに Vimには:wと:rコマンドがあります。コマンド自体は知っている方が多いかと思います。 ぼく的にちょっと便利な使い方ができるので、それお紹介していこうと思います。 :r :r banana.txtでファイルの中身を読み取って、現在のカーソルの次の行に挿入してくれます。 挿入できる行も指定できます。その場合は:{lnum}r banana.txtというふうに先頭に行番号を入力します。 ここからがイチオシですが、実は:r !{cmd}でコマンドの出力も挿入できます。 たとえば、APIのレスポンスをVimでちょっと編集したい場合や、コマンド実行結果を記事に挿入したい場合などに便利です。 :w :wについてVimmerのみなさんなら誰もが知っているコマンドなので説明は省きますが、 実は:w !{cmd}でバッファの内容を外部コマンドの標準入力として渡してくれます。 つまり、標準入力からコー

                                                            • テクノロジー
                                                            • 2020/10/07 09:50
                                                            • vim
                                                            • あとで読む
                                                            • コマンド
                                                            • Docker
                                                            • 便利
                                                            • お役立ち
                                                            • tips
                                                            • bash
                                                            • コード
                                                            • Linux

                                                            このページはまだ
                                                            ブックマークされていません

                                                            このページを最初にブックマークしてみませんか?

                                                            『zenn.dev』の新着エントリーを見る

                                                            キーボードショートカット一覧

                                                            j次のブックマーク

                                                            k前のブックマーク

                                                            lあとで読む

                                                            eコメント一覧を開く

                                                            oページを開く

                                                            はてなブックマーク

                                                            • 総合
                                                            • 一般
                                                            • 世の中
                                                            • 政治と経済
                                                            • 暮らし
                                                            • 学び
                                                            • テクノロジー
                                                            • エンタメ
                                                            • アニメとゲーム
                                                            • おもしろ
                                                            • アプリ・拡張機能
                                                            • 開発ブログ
                                                            • ヘルプ
                                                            • お問い合わせ
                                                            • ガイドライン
                                                            • 利用規約
                                                            • プライバシーポリシー
                                                            • 利用者情報の外部送信について
                                                            • ガイドライン
                                                            • 利用規約
                                                            • プライバシーポリシー
                                                            • 利用者情報の外部送信について

                                                            公式Twitter

                                                            • 公式アカウント
                                                            • ホットエントリー

                                                            はてなのサービス

                                                            • はてなブログ
                                                            • はてなブログPro
                                                            • 人力検索はてな
                                                            • はてなブログ タグ
                                                            • はてなニュース
                                                            • ソレドコ
                                                            • App Storeからダウンロード
                                                            • Google Playで手に入れよう
                                                            Copyright © 2005-2025 Hatena. All Rights Reserved.
                                                            設定を変更しましたx