タグ

ブックマーク / zenn.dev/mattn (9)

  • vim-lsp-settings に物色インストール画面を作った。

    はじめに この記事は Vim Advent Calendar 2021、25 日目の記事です。みなさん Vim 使ってますか?そうですか、使ってますか。 今年はどうも仕事が忙しく、Vim に殆どコントリビュート出来なかったので反省している mattn です。何も Vim 活動をしていなかったのか、というとそうでもなく、主に vim-lsp-settings で色々な Language Server を使える様にしたり、改善したりしていました。 vim-lsp-settings て何よ 知らない方もおられると思うので、改めて vim-lsp-settings を説明したいと思います。 古くからあるジョークの影響か、一般的な Vim のイメージは 真っ黒な画面 /etc のファイル編集用エディタ 同期処理しかできない 終了できない といった悪いイメージがあるのですが、多くの方が想像している V

    vim-lsp-settings に物色インストール画面を作った。
    heavenshell
    heavenshell 2021/12/25
    とても便利!
  • Go 言語でスライスから要素を消すには

    の様に直感的な操作ができるはずです。しかし Go 言語の場合、スライスの伸長にて発生するメモリアロケーションを append 関数と代入を使う事で透過的に行える仕組みを採用しています。例えばスライスの伸長は この様に行います。C言語をかじった事のある方や、プログラミング言語の内部データ構造をご存じの方であれば、リストといった物が伸長の度にメモリを再確保する様な事をやっていない事はご存じだと思います。Go 言語のスライスも同様で、スライスには長さとキャパシティを持っており、キャパシティを超えない範囲で長さだけが増えていき、キャパシティを超えるとメモリが再確保されるという作りになっています。ですので、上記のコードであれば、スライス(実際は SliceHeader)が内部で持っているポインタ、長さ、キャパシティを、代入してやる事で上書きしています。 スライスから要素を消す スライスの伸長と同様に

    Go 言語でスライスから要素を消すには
  • Go と prisma と lit-html と ky で作るモダンな TODO アプリ

    はじめに 以前から GoORM (Object Relational Mapping) 選定の為に、そこそこ時間を使っています。現状は gorp を使っていますが、満足している訳ではありません。 そんな中で見つけた prisma を試すべく、バックエンドに Go と prisma を使った TODO アプリを作ってみる事にしました。 prisma とは prisma (Next-generation ORM for Node.js and TypeScript)は簡単に言うと 自動生成された型付きのクライアントが付いている マイグレーションが出来る モデル定義から CRUD やインデックスを自動生成できる PostgreSQL, MySQL, SQLite3 等をサポート Prisma Studio という GUI が付いている というモダンな ORM です。Nuxt と TypeS

    Go と prisma と lit-html と ky で作るモダンな TODO アプリ
  • KEN_ALL.csv を Vim でシュッとする

    この記事は Vim Advent Calendar 2020 25日目の記事です。 はじめに 年末ですね。年賀状ですね。インターネットが普及した現代、若い世代の人達においては年賀状を交わす事は少なくなってしまったかもしれません。しかし田舎育ちの僕やある程度年配の方々の世界線では年賀状は未だ変わらず有効なコミュニケーション手段として採用されており「アイツん家の子、大きくなったな」「アイツ随分老けたな」といった思い出回帰の方法としても使われています。 さて皆さんは年賀状をどの様に作っておられますか?手書きですか?それとも「筆○2020」等といった年賀状作成専用ソフトをお使いだったりしますか?僕は毎年 LibreOffice の宛名書き印刷を使っています。 LibreOfficeで宛名印刷(縦書き/連名): ひろろろぐ LibreOffice で差し込み印刷する記事は沢山あるのですが、連名がちゃ

    KEN_ALL.csv を Vim でシュッとする
  • vimrc の分割管理を上手くやる 2020年版

    筆者の環境について Vim にはプラグインマネージャも沢山あります。その中で僕は vim-plug を使っています。Software Design という雑誌で「Vim の細道」という連載をやっている事もあり、皆さんに一番リーチしやすいプラグインマネージャを選んでいるという事もありますが、基は「トラブルが発生しづらい」という理由で使っているのもあります。 vimrc の分割管理 ところで最近は Vim プラグインが沢山あり、個々に設定が必要な場合もあります。全て vimrc の中に書いてしまうのも良いのですが、そうするとどこからどこまでが、どのプラグインの設定か分からないといった問題が起きてしまいます。僕は vimrc をプラグイン毎に分割して管理しています。 Big Sky :: ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版 " Vim 体の機能のデフォルト値

    vimrc の分割管理を上手くやる 2020年版
  • mattn.h

    #include <stdio.h> #include "mattn.h" int main() { puts("Hello, World!"); }

    mattn.h
    heavenshell
    heavenshell 2020/10/15
    めっちゃ笑ってるw
  • Vim9 script はどれくらい速いのか

    はじめに Vim というテキストエディタは、vi から引き継いだ独特な操作を提供します。そしてそれだけでなく Vim script という独自のスクリプト言語で Vim 自身を拡張する事ができます。多くの Vim ユーザの方もそれはご存じかと思います。 もしかすると知らない方もいらっしゃるかもしれませんが、昨年末から Vim の作者 Bram Moolenaar 氏が vim9 というブランチを作り今年の1月に master ブランチへマージしました(vim9 とは言えどまだバージョンは8です)。その中に含まれていた機能が Vim9 script です。 そもそも Vim script Vim script は Vim のバージョン 5.0 の頃から登場し、元々は設定ファイルである vimrc を環境により if 分岐する為に登場しました。その後 Vim script に色々な関数が足され

    Vim9 script はどれくらい速いのか
  • CtrlP に出戻りした

    はじめに Vim でファジーファインダといっても沢山ある訳ですが、皆さんはどれを使ってるでしょうか。 CtrlP fzf.vim denite vim-fz そもそもファジーファインダ使わず netrw そもそもファジーファインダ使わず NERDTree そもそもファジーファインダ使わず dirvish そもそもファジーファインダ使わず fern その他 いろいろあります。それぞれに特徴があり、自分の好きな物を使っておられると思います。個々の特徴を知りたい方は @yutakatay さんが良い記事を書いてくれているのでそちらをご覧ください。 まず昔話を聞いて欲しい 僕はもともと CtrlP を使っていました。CtrlP は kien 氏が開発した Vim プラグインで、Vim script のみで実装された高速なファジーファインダです。 意外と知られていない便利なvimプラグイン「ctrl

    CtrlP に出戻りした
  • Facebook の ent を使って簡単なウェブアプリケーションを作る

    はじめに この記事は Facebook が開発している ORM、ent を使ってどれだけ簡単にアプリケーションを作れるかをチュートリアル的に解説するものです。エンティティを操作する一通りの機能が揃っており、扱いやすいライブラリだと思います。 ent の特徴は以下の通り コードをスキーマとして扱う モデルをGoのオブジェクトとして扱います 簡単なグラフの横断 クエリの実行、集合、そしてグラフ構造を簡単に横断します 静的型で明確な API 100% 静的な型でコード生成を使った明確な API を提供します 複数のストレージドライバ MySQL, PostgreSQL, SQLite と Gremlin をサポートします 拡張性 Go のテンプレートを使って簡単に拡張できます この記事では ent を使って1行掲示板を作ってみたいと思います。 前準備 ent を使うには始めに CLI の ent

    Facebook の ent を使って簡単なウェブアプリケーションを作る
  • 1