Slide 1

Slide 1 text

textlintで日本語をまともに (Neovim/VS Code) Kenichiro Matohara(matoken) 1

Slide 2

Slide 2 text

matoken @ 鹿児島の右下の山奥から参加 好きなLinuxディストリビューションはDebian GNU/Linux map: © OpenStreetMap contributors Kenichiro Matohara(matoken) https://matoken.org [email protected] 2

Slide 3

Slide 3 text

最近 台風10号 足が遅く長かった 停電、携帯通信断3日ちょい 3

Slide 4

Slide 4 text

08/28 午後から断続的に停復電、夕方から停電 08/29 昼過ぎ docomo通信不可に 08/29 22時「トヨタ通れた道マップ」でところどころ通行止め 街の様子。ファミマ、ローソン、マックスバリュ等は臨時休業、セブンイレブンやパチンコ屋は 開いていた。ジョイフルが開いていたらlaptop充電したかったが閉店。 08/30 0時頃。au通信不可に 08/30 朝。softbank通信不可に 08/30 15時。auが復旧。防災無線で停電情報はwebを見るようにと放送される……。 08/31 18:30頃一時復電、停電。au/docomo復旧 08/31 19:30頃。softbank復旧。電力安定? 4

Slide 5

Slide 5 text

今回断水がなかったが、水は濁ったので2lペットボトル6本ほど消費。 いつもは携帯の電波が発射されなくなるが、今回は電波はあるが通信ができなくなった。 新携帯のmoto g24のFMラジオでは1局も入らなかった。旧端末のmoto g31は2局入る。 laptop(Thinkpad L13)サスペンド時のバッテリー消費が激しい……要確認。 ポタ電は節約しすぎて復電時もフル目盛りだった。もう少し消費しても良かった。 シーリングライトが壊れた。 5

Slide 6

Slide 6 text

誤字脱字 ブログやスライドなどを書いて、公開してから誤字脱字に気づきがち 他にも表記ゆれなども。 プログラムにはlint toolがある 例えばShellScriptにはShellCheckが便利 鹿児島Linux勉強会2021.04で発表 「ShellCheckでShellScriptを少しまと もに」 6

Slide 7

Slide 7 text

textlint 日本語に対応した自然言語リンター plaintext/Markdown対応(プラグインで他のいくつかの形式にも対応) 様々なルールの読み込み、設定が可能 Node.js、MIT license 7

Slide 8

Slide 8 text

textlint導入 環境:Debian GNU/Linux sid amd64 Node.jsはDebianパッケージのものを利用 Node.js の導入 textlintの導入  Node.jsのパッケージマネージャ、最近は pnpm がいい感じです。 $ sudo apt install nodejs npm $ dpkg-query -W nodejs npm nodejs 20.17.0+dfsg-2 npm 9.2.0~ds1-3 $ npm install textlint --save-dev $ which textlint /home/matoken/node_modules/.bin/textlint $ textlint --version v14.2.0 https://pnpm.io/ 8

Slide 9

Slide 9 text

textlintを試してみる デフォルト値ではルールがないので何もしない 試しにら抜き言葉のルールを導入して試す 1. ら抜き言葉をチェックするtextlintルール導入 ら抜き言葉を探す https://github.com/textlint-ja/textlint- rule-no-dropping-the-ra $ npm install textlint-rule-no-dropping-the-ra $ textlint --rule textlint-rule-no-dropping-the-ra test.md test.md 5:4 error ら抜き言葉を使用しています。 no-dropping-the-ra ✖ 1 problem (1 error, 0 warnings) $ head -5 test.md | tail -1 猫が見れます 9

Slide 10

Slide 10 text

設定ファイルにルールを記述 複数のルールやオプションを記述できるが、毎回書くのは大変なので設定ファイルに書く 設定ファイルにルールを記述 ~/.textlintrc.json { "rules": { "textlint-rule-no-dropping-the-ra": true } } $ textlint test.md test.md 5:4 error ら抜き言葉を使用しています。 no-dropping-the-ra ✖ 1 problem (1 error, 0 warnings) 10

Slide 11

Slide 11 text

 導入ルールやプラグインが決まっている場合は全部導入した後に --init でインストール済 のものを使った ~/.textlintrc.json を作ってくれる。 $ npm i [plugins] [rules] $ textlint --init 11

Slide 12

Slide 12 text

様々なルールがある Collection of textlint rule · textlint/textlint Wiki azu/textlint-rule-web-plus-db: [unofficial] WEB+DB PRESS用語統一ルール for textlint translation/MDN/textlint at master · mozilla-japan/translation https://github.com/textlint/textlint/wiki/Collection-of-textlint-rule#rules- japanese https://github.com/azu/textlint-rule-web-plus-db https://github.com/mozilla-japan/translation/tree/master/MDN/textlint 12

Slide 13

Slide 13 text

ルールプリセット たくさんあってどれを導入すればいいのか…… コンフリクトするものも とりあえずこのあたりから始めると良さそう? ルールプリセットを使ってお手軽にtextlint入門 | Web Scratch https://efcl.info/2015/12/30/textlint-preset/ 13

Slide 14

Slide 14 text

Neovimから利用したい * Neovim+SPaceVim+ALE環境 1 Neovimをパッケージから導入 2 SPaceVim導入footnote[Vim/Neovimを使いやすくしてくれるもの] 3 ALE導入( ) $ sudo apt install neovim $ curl -sLf https://spacevim.org/install.sh | bash $ git clone --depth 1 https://github.com/dense-analysis/ale. it ~/.local/share/nvim/site/pack/git-plugins/start/ale $ nvim 1 2 3 https://github.com/dense-analysis/ale 14

Slide 15

Slide 15 text

 Vim pluginでtextlintを導入する手順もある。複数のtextlintが導入された状態で間違 ったほうを動かしてうまく動かないとやってしまうことも。 15

Slide 16

Slide 16 text

VS Codeでのtextlint 最近人気のMicrosoft製コードエディターの 拡張機能でtextlintが使えるように出来る vscode-textlint - Visual Studio Marketplace hostに導入されたtextlintを呼ぶ VS Code https://marketplace.visualstudio.com/items?itemName=taichi.vscode- textlint 16

Slide 17

Slide 17 text

拡張機能の導入 VS Codeを起動した状態で、 Ctrl + p → ext install taichi.vscode-textlint 導入は出来たがうまく動かない? VS Code設定初期化してやり直したい 17

Slide 18

Slide 18 text

類似拡張機能 テキスト校正くん - Visual Studio Marketplace textlint同梱なので拡張機能を導入するだけで利用できてお手軽 Figma, Adobe XD版も 対応形式※Asciidoc等他の形式には対応できない? 文章作成・メール作成に役立つ! VS Codeの拡張機能「テキスト校正くん」を公開 - ICS MEDIA https://marketplace.visualstudio.com/items?itemName=ICS.japanese- proofreading テキストファイル(.txt) Markdownファイル(.md) HTMLファイル(.html) Latexファイル(.tex) Re:VIEWファイル(.re) https://ics.media/entry/18859/ 18

Slide 19

Slide 19 text

novel-writer - Visual Studio Marketplace※未検証 小説執筆向けの拡張機能、原稿用紙プレビューなども 「Visual Studio Code」で執筆するSF作家 藤井太洋氏が作る物書きのための拡張 機能 - ログミーTech https://marketplace.visualstudio.com/items?itemName=TaiyoFujii.novel- writer https://logmi.jp/tech/articles/325715 19

Slide 20

Slide 20 text

VSCodiumでの拡張機能 VS Codeをコミュニティ主導、フリーライセンス化したもの VS Codeの拡張機能はVS Code Marketplaceから検索、導入でき、VSCodiumはOpen VSX Registryが利用できる VS Code MarketplaceにあるけどOpen VSX Registryに無いものが結構ある 20

Slide 21

Slide 21 text

VS Codeの拡張機能をCodiumに導入 VS Code Marketplaceの該当拡張機能ページ → Version History → Downloadで最 新の .VSIX ファイルを入手 VSCodiumで Ctrl+p → Install From VSIX → ダウンロードした .VSIX を指定  VS Code Marketplaceからの .VSIX ダウンロードは正常終了が帰ってきていても小さ いファイルになることがよくある。 unzip -l などで展開できるのを確認。 21

Slide 22

Slide 22 text

まとめ textlintで日本語をまともに cliやLSP経由等で利用可能 NeovimやVS Codeで試してみている ルールの適用や設定に悩む とりあえずはVS Code+テキスト校正くん既定値がお手軽? 22

Slide 23

Slide 23 text

奥付 発表 2024-09-22(sun) 発表者 利用ソフトウェア + ライセンス 鹿児島Linux勉強会 2024.09(オンライン開催) Kenichiro Matohara(matoken) Neovim Asciidoctor Reveal.js CC BY 4.0 23