Tirenvi_01/31.Zenn
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* vimでCSVを気持ちよく編集したくて「tirenvi」を作った話 [...
皆さんは表形式のデータをどう管理していますか?
スプレッドシートは高機能で便利ですが、
- ファイル形式が独自
- Gitでdiffが取りづらい
- マウス操作が前提
といった点が、私には少し扱いづらく感じられました。
やはりテキストデータとして管理して、Gitで差分を確認できる...
できればキーボードだけで完結させたい。
となると、csv や tsv が自然な選択肢になります。
理想は「vimで開いて、そのまま快適に編集できること」です。
---
## 既存ツールの検討
vim用のCSVプラグインはいくつか試してみましたが、
- 表示が崩れやすい
- 編集体験がいまひとつ
- 操作が独自すぎる
など、どうもしっくり来ませんでした。
vimにこだわらなければ、visidata という素晴らしいツールが...
実際に使ってみましたが、独自の操作体系を覚える必要があり、
「いつものvimの操作感」とは少し違います。
---
## それなら自分で作ろう
不満があるなら、自分で作るのが早い。
そうしてできたのが、neovimプラグイン **tirenvi** です。
https://github.com/kibi2/tirenvi.nvim
---
## tirenviの特徴
- CSV/TSVを構造を保ったまま整形表示
- vimの通常コマンドがそのまま全部使える
- 編集で列構造が壊れても自動補正
- バッファは純粋なテキストのみ
- Undo treeを壊さない
## デモ
https://github.com/kibi2/tirenvi.nvim/blob/main/demo.gif?...
行編集、列編集、セル編集、すべて「いつものvim」です。
特別な操作を覚える必要はありません。
## 仕組み
内部では TIR (Tabular Intermediate Representation) という...
flat (csv, tsv, ...)
↓ 外部パーサー(tir-csvコマンドなど)
TIR (intermediate representation)
↓ tirenvi (neovimプラグイン)
tir-vim (structured buffer view)
保存する時は逆に動きます。
tir-vim → TIR → flat (保存先のフォーマット)
vimの画面に表示されているものがtir-vimそのものです
vimの編集機能を使って自由にtir-vimを編集できます
tir-vim と TIR は完全可逆変換が可能です
編集したtir-vimはそのままTIRに変換可能です
TIRとflat間の偏見は外部パーサーがおこないます
外部パーサーを賢くすれば情報落ちが防げます
## インストール
### lazy.nvim
## 今後
次は Markdown (GFM) のテーブルもvimでサクサク編集できるよ...
興味があれば、ぜひ試してみてください。
* CSVを壊さずVimで編集したいのでNeovimプラグインを作った ...
皆さんは表形式のデータはどうやって管理していますか?
スプレッドシートアプリは高機能で良いのですが、ファイルは...
私はやはりテキストデータにしてGitで管理して手軽にdiffとか...
それとマウスを使うのも面倒です。
となるとcsv, tsvとかが候補になってきます。vimでぱっと開い...
vimでcsvを編集出来るプラグインを探してみましたがあまり満...
vimにこだわらなければvisidataという優れたアプリがあるよう...
不満がある時は自分で作りましょう。で、出来たのがneovimプ...
特徴は
- csv, tsvを開くと罫線が揃った表形式で表示する
- vimのコマンドは何でも使えて編集できる
- 自由に編集して普通に保存すれば元のcsv, tsvに編集内容が...
(github readme anime)
https://github.com/kibi2/tirenvi.nvim/blob/main/demo.gif?...
csv開いて表形式表示。toggleコマンドで表示切り替え。dd, p ...
行編集、列編集、セル編集、すべてvimのコマンドでできます。
https://github.com/kibi2/tirenvi.nvim
興味があれば試してみてください。
lazy.nvim
{
"kibi2/tirenvi.nvim",
config = function()
require("tirenvi").setup()
end,
}
vim-plug
Plug 'kibi2/tirenvi.nvim'
次はmarkdown gfmに対応したいです。
終了行:
* vimでCSVを気持ちよく編集したくて「tirenvi」を作った話 [...
皆さんは表形式のデータをどう管理していますか?
スプレッドシートは高機能で便利ですが、
- ファイル形式が独自
- Gitでdiffが取りづらい
- マウス操作が前提
といった点が、私には少し扱いづらく感じられました。
やはりテキストデータとして管理して、Gitで差分を確認できる...
できればキーボードだけで完結させたい。
となると、csv や tsv が自然な選択肢になります。
理想は「vimで開いて、そのまま快適に編集できること」です。
---
## 既存ツールの検討
vim用のCSVプラグインはいくつか試してみましたが、
- 表示が崩れやすい
- 編集体験がいまひとつ
- 操作が独自すぎる
など、どうもしっくり来ませんでした。
vimにこだわらなければ、visidata という素晴らしいツールが...
実際に使ってみましたが、独自の操作体系を覚える必要があり、
「いつものvimの操作感」とは少し違います。
---
## それなら自分で作ろう
不満があるなら、自分で作るのが早い。
そうしてできたのが、neovimプラグイン **tirenvi** です。
https://github.com/kibi2/tirenvi.nvim
---
## tirenviの特徴
- CSV/TSVを構造を保ったまま整形表示
- vimの通常コマンドがそのまま全部使える
- 編集で列構造が壊れても自動補正
- バッファは純粋なテキストのみ
- Undo treeを壊さない
## デモ
https://github.com/kibi2/tirenvi.nvim/blob/main/demo.gif?...
行編集、列編集、セル編集、すべて「いつものvim」です。
特別な操作を覚える必要はありません。
## 仕組み
内部では TIR (Tabular Intermediate Representation) という...
flat (csv, tsv, ...)
↓ 外部パーサー(tir-csvコマンドなど)
TIR (intermediate representation)
↓ tirenvi (neovimプラグイン)
tir-vim (structured buffer view)
保存する時は逆に動きます。
tir-vim → TIR → flat (保存先のフォーマット)
vimの画面に表示されているものがtir-vimそのものです
vimの編集機能を使って自由にtir-vimを編集できます
tir-vim と TIR は完全可逆変換が可能です
編集したtir-vimはそのままTIRに変換可能です
TIRとflat間の偏見は外部パーサーがおこないます
外部パーサーを賢くすれば情報落ちが防げます
## インストール
### lazy.nvim
## 今後
次は Markdown (GFM) のテーブルもvimでサクサク編集できるよ...
興味があれば、ぜひ試してみてください。
* CSVを壊さずVimで編集したいのでNeovimプラグインを作った ...
皆さんは表形式のデータはどうやって管理していますか?
スプレッドシートアプリは高機能で良いのですが、ファイルは...
私はやはりテキストデータにしてGitで管理して手軽にdiffとか...
それとマウスを使うのも面倒です。
となるとcsv, tsvとかが候補になってきます。vimでぱっと開い...
vimでcsvを編集出来るプラグインを探してみましたがあまり満...
vimにこだわらなければvisidataという優れたアプリがあるよう...
不満がある時は自分で作りましょう。で、出来たのがneovimプ...
特徴は
- csv, tsvを開くと罫線が揃った表形式で表示する
- vimのコマンドは何でも使えて編集できる
- 自由に編集して普通に保存すれば元のcsv, tsvに編集内容が...
(github readme anime)
https://github.com/kibi2/tirenvi.nvim/blob/main/demo.gif?...
csv開いて表形式表示。toggleコマンドで表示切り替え。dd, p ...
行編集、列編集、セル編集、すべてvimのコマンドでできます。
https://github.com/kibi2/tirenvi.nvim
興味があれば試してみてください。
lazy.nvim
{
"kibi2/tirenvi.nvim",
config = function()
require("tirenvi").setup()
end,
}
vim-plug
Plug 'kibi2/tirenvi.nvim'
次はmarkdown gfmに対応したいです。
ページ名: