備忘ノート https://note.spage.jp Sat, 08 Jul 2023 02:36:27 +0000 ja hourly 1 https://wordpress.org/?v=6.4.3 https://note.spage.jp/wp-content/uploads/2021/01/cropped-android-chrome-512x512-2-32x32.png 備忘ノート https://note.spage.jp 32 32 180516743 JPEG XLをWindowsで使うツール等のメモ https://note.spage.jp/archives/820 https://note.spage.jp/archives/820#respond Wed, 05 Jul 2023 16:43:49 +0000 https://note.spage.jp/?p=820 記事編集時点ではあまり世間に浸透していない JPEG XL ですが、 JPEG と比較して HDR やデータ量削減などの利点が大きく今すぐ採用したい場面もあるかと思うので、とりあえず使うにあたって便利なツール等をメモしておきます。

対応ソフトウェアの公式リスト

JPEG XL のリファレンス実装ライブラリのドキュメントに一覧として対応ソフトウェアがまとめられています。
網羅的に見たいとき便利です。

https://github.com/libjxl/libjxl/blob/main/doc/software_support.md

表示

標準の画像ビューワやファイルエクスプローラのサムネで表示するプラグイン

GitHub - saschanaz/jxl-winthumb: A JPEG XL (*.jxl) thumbnail handler for Windows File Explorer.
A JPEG XL (*.jxl) thumbnail handler for Windows File Explorer. - saschanaz/jxl-winthumb

ウェブブラウザ

ごく一部のウェブブラウザのみデフォルトで JPEG XL の表示が可能です。記事作成時点でメジャーなウェブブラウザだと Safari のみ対応しています。

ウェブブラウザによっては設定を変更すると表示できるようになる場合もあります。

対応状況は以下のページが見やすいです。

JPEG XL image format | Can I use... Support tables for HTML5, CSS3, etc
"Can I use" provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile w...

実際に試してみたい場合は表示テストページがあります。

JPEG XL Test Page

JPEG XLを表示可能にするChrome / Firefox 向け拡張

GitHub - zamfofex/jxl-crx: browser extension to display JPEG XL images
browser extension to display JPEG XL images. Contribute to zamfofex/jxl-crx development by creating an account on GitHub...

変換

リファレンス実装の変換ツール(CLI)

画像ファイルを JPEG XL に変換する cjxl という CLI ベースのツールが配布されています。
PNG・JPEG のみ変換可能です。

安定版の場合は”Releases”から『jxl-x64-windows-static.zip』または『jxl-x86-windows-static.zip』をダウンロード。
開発版は”Actions”から適当なワークフローのビルドを選択してダウンロード。

GitHub - libjxl/libjxl: JPEG XL image format reference implementation
JPEG XL image format reference implementation. Contribute to libjxl/libjxl development by creating an account on GitHub.

変換ツールのGUIフロントエンド

上記の cjxl を GUI で操作できるフロントエンドツールが公開されています。
バッチ操作でフォルダ内をまとめて変換する等も可能です。

GitHub - kampidh/jxl-batch-converter: A simple GUI for libjxl binaries
A simple GUI for libjxl binaries. Contribute to kampidh/jxl-batch-converter development by creating an account on GitHub...
]]>
https://note.spage.jp/archives/820/feed 0 820
IMAP IDLEを手打ちコマンドで動作確認する https://note.spage.jp/archives/794 https://note.spage.jp/archives/794#respond Tue, 18 May 2021 12:42:13 +0000 https://note.spage.jp/?p=794 IMAP IDLEって?

 メールサーバ上のメールにアクセスするためのプロトコルであるIMAPを用いて、メールが届いたことを即座に把握するための拡張です。いわゆるプッシュ通知。

 ここではIMAP IDLEの動作を手打ちで見るために必要な操作に絞って記載します。

参考

確認環境

  • サーバ : Dovecot 2.3.14

準備

 クライアントにTelnetかOpenSSLが必要になります。どちらもWindows/Linux/Mac OSにインストールして用意できると思いますが方法は割愛します。

IMAPサーバへの接続

接続を暗号化していない場合

 Telnetで接続します。

telnet [メールサーバのドメインまたはIPアドレス] 143

接続を暗号化している場合(SSL/TLS)

 接続を暗号化していて、接続ポートがTCP 993の場合。
 OpenSSLで接続します。

openssl s_client -connect [メールサーバのドメインまたはIPアドレス]:993 -crlf -quiet

接続を暗号化している場合(STARTTLS)

 接続を暗号化していて、接続ポートがTCP 143の場合。
 OpenSSLで接続します。

openssl s_client -connect [メールサーバのドメインまたはIPアドレス]:143 -crlf -quiet -starttls imap

IMAPのコマンド操作

タグについて

 基本的にIMAPのコマンドの先頭にはクライアントが任意のタグを付ける必要があります。
 以下の例で言えば、「a001」がタグです。

a001 select "inbox"

 IMAPのコマンドは非同期で実行が可能であり、応答が何についてのものなのかクライアント側で把握するためにタグを付けます。
 とりあえず手動で打つ場合は適当な英数字にしておけば問題ないと思われます。

ログイン

 ここではパスワードが平文の場合を記載します。
 パスワード自体を暗号化して認証する方式などまで含めると多様すぎるため、参考元などの詳しい情報をご確認ください。

a001 login [メールユーザ] [パスワード]

メールボックスのリスト

a002 list "" "*"

 以下の例のようにアカウント内のメールボックスの一覧が表示されます。

a002 list "" "*"
* LIST (\HasNoChildren \UnMarked \Archive) "/" Archive
* LIST (\HasNoChildren \UnMarked \Sent) "/" Sent
* LIST (\HasNoChildren \UnMarked \Drafts) "/" Drafts
* LIST (\HasNoChildren \Trash) "/" Trash
* LIST (\HasNoChildren \Junk) "/" Junk
* LIST (\HasNoChildren) "/" INBOX
a002 OK List completed (0.003 + 0.000 + 0.002 secs).

メールボックスの選択

 IMAP IDLEでメールボックスの件数の変化を確認するためには、対象のメールボックスを選択しておく必要があります。(これを書き残すきっかけです)
 ほとんどの場合はデフォルトのメールボックスであるinboxになると思いますが、違う場合は前述の方法でリストから対象の名称を確認して書き換えてください。

a003 select inbox

IDLE 

IDLEの待受

a004 idle

 待受状態になると、以下のようにサーバの状態が送られてきます。

a004 idle
+ idling
* OK Still here
* 12 EXISTS
* 1 RECENT
* OK Still here

 一定間隔で接続の生存確認としてOK Still hereが送られます。これはサーバ側の設定で感覚が異なります。
 メールボックスに変化があるとEXISTS(メールの総数)とRECENT(RECENT[最近?]フラグがついたメール数)が送られます。

IDLEの終了

 IDLE状態を明示的に終了する場合は以下のコマンドを送ります。
 これは先頭にタグが必要ありません。

done

ログアウト

a005 logout
]]>
https://note.spage.jp/archives/794/feed 0 794
個人的にセルフホストしてるソフトウェア 2021 https://note.spage.jp/archives/766 https://note.spage.jp/archives/766#respond Thu, 07 Jan 2021 12:37:04 +0000 https://note.spage.jp/?p=766 経緯

 以下の記事を読んでセルフホストできるソフトウェアの使用感含めて見れるのいいなー、もっと読みたいなーと思ったのでまず自分が書いてみることにしました。

自分の利用状況

 VPSとホームサーバーで構築してます。
 セルフホストするためにセルフホストしているので無料サービスに置き換えても良いものが多いです。
 ある程度はDockerで立てていますが、サーバーリソースの兼ね合いで直接動かしているものも多いです。大抵メモリが足りない。

セルフホストの注意点

 サービスの利用規約並みに見飽きた話になりますが、サーバーを外部に公開すると不正にアクセスされる可能性が発生します。
 個人的なデータを盗まれるだけであれば困るのも自分のみですが、他者を攻撃する踏み台として使われてしまうと想像もできない被害に発展してしまうかもしれません。
 なので支障がなければ自宅ネットワーク内で完結するホームサーバをオススメします。最近はラズパイで低予算から始められるのでお手軽。

セルフホストできるソフトウェアの情報源

 基本的に英語。

セルフホストしてるソフトウェア 2021

 開発・CMS・ゲーム関連はなんとなくで探すことがなさそうなので除外しています。

FreshRSS

 最近はTinyTinyRSSを押しのけて有名になった気がするRSSリーダー。
 ウェブサイトのフィードを登録すると更新情報や概要を一覧で見ることができます。
 本当はselfossのほうが好みですが、いろいろな兼ね合いで現在はこのFreshRSSを使っています。

RSS-Bridge

 対応しているウェブサイトのRSSフィードを生成してくれるやつ。
 自力でパースしてRSSフィードを生成する人生に疲れたときの救世主。
 ただし、以下の点に注意が必要。

  • 対応する設定がある特定のウェブページにしか使えない。
  • 対象のウェブページの仕様が変わると対応してもらえるまで動かなくなるかもしれない。

Nitter

 Twitterのフロントエンドですが検索とRSSフィード生成が強力。エゴサに便利。
 自分で建てなくても、インスタンスを公開している方がいるのでそれを使用させてもらう手もある。

GROWI

 日本企業が開発している社内用Wiki的なやつ。
 Markdownで書けて、文書はディレクトリ構造でシンプルに管理。
 検索がElasticsearchで高速。(ただしメモリはそれなりに必要)
 スニペット/買い物メモ/夢日記など、個人で雑多なことを放り込むメモとして使っています。

CodiMD

 Markdownが使えるリアルタイムコラボレートが売りのメモ帳。
 ちょっとした議事録的なものをリアルタイムで共有したり、しっかりした体裁で見せたい文章がある時に使ってます。

bitwarden_rs

 パスワード管理のオープンソースソフトウェアであるBitwardenの互換Rust実装。
 大元のBitwardenもセルフホストできますが、必要メモリが多いので省エネで高速なbitwarden_rsを使っています。

wallabag

 URIを記録しておいて後から見返せるようにするやつ。
 気になったけど出先で読むには長い記事や、後から続きを見たいエロ動画を記録すると便利。
 ブラウザ拡張やスマホアプリと連携すると手軽に使えます。
 最近になって多言語対応で表示を日本語化できるようになってます。

Jellyfin

 ストリーミングで自分の持ってる音楽や動画を再生するやつ。
 家と出先で聞く音楽を管理したり、DLNAでテレビから再生するために使ってます。
 たぶん次のバージョン10.7でバグ修正されて言語設定を日本語にできるようになってるはず。

Nextcloud

 オンラインストレージ。もはや個人セルフホスト界の金字塔とでも言うべき存在。
 個人的な使い方としては外部ストレージに上記のJellyfinのメディアフォルダを登録して管理できるようにしています。

Mailu

 メールサーバーをDockerでまるごと構築してくれるやつ。
 メールの送受信だけでなくWeb管理画面/アンチウイルス/アンチスパム/DKIM/SSL証明書もいい感じにやってくれます。
 管理画面でDNSレコードの提案までしてくれるのを見た時は感動で泣きました。

]]>
https://note.spage.jp/archives/766/feed 0 766
Windows10の自動ログオンをマイクロソフト公式ツールで設定する https://note.spage.jp/archives/748 https://note.spage.jp/archives/748#respond Thu, 20 Aug 2020 04:31:36 +0000 https://note.spage.jp/?p=748  Windows10のMay 2020 Updateあたりから設定画面だけでは自動ログオンの設定ができなくなってしまったので、マイクロソフトが案内しているツールを使ってサクッと設定する方法をメモしておく。

 自動ログオンの注意点として、PCに接触できれば誰でもアクセスできるようになってしまうため、セキュリティ的に問題ない場所や用途を考慮して利用したほうが良いかもしれません。

確認環境

  • Windows 10 May 2020 Update

設定手順

ツールのダウンロード

 以下のページの「Download Autologon」からツールがダウンロードできます。

 ちなみに、このツールはマイクロソフトが無償提供しているWindows SysinternalsというWindows向け管理ツール郡の一つのようです。

自動ログオンの設定

 難しいことは特になく、ツールを起動してから自動ログオンしたいユーザ名・ドメイン・パスワードを入力後、「Enable」ボタンを押すだけです。
 ドメインを設定する必要がなければ、デフォルトで入力されているデバイス名のままにしておけば良いと思います。

自動ログオンの解除

 ツール起動後の画面で「Disable」ボタンを押すだけです。

]]>
https://note.spage.jp/archives/748/feed 0 748
Ubuntu20.04でddbridge(dddvb)をDKMSからインストールする https://note.spage.jp/archives/712 https://note.spage.jp/archives/712#respond Fri, 05 Jun 2020 08:36:31 +0000 https://note.spage.jp/?p=712
  • 2020/06/11 [修正] Makefileのカーネル指定がDKMSから受け取れるよう書き換え
  •  久しぶりにMax M4をLinuxで使ったら、カーネルアップデートでドライバが消えて録画失敗して悲しい気持ちになったのでDKMSで自動的にインストールされるようにするためのメモ。
     どなたかが手順を検証してもっと包括的なDTV環境の構築手順を作ったりして頂けると嬉しいです。

    参考

    • AUR (en) – dddvb-dkms
      • モジュールの指定方法はこのパッケージの内容から丸パクリさせて頂きました

    確認環境

    • Ubuntu 20.04
    • dddvb v0.9.37

    手順

     バージョンが変わっても大幅な変更がなければ、バージョン番号だけ適宜書き替えて同じ手順が使えるかもしれない。

    必要パッケージのインストール

    $ sudo apt install dkms build-essential git unzip
    

    ソースとdkms.confの準備

     作業用ディレクトリを作成。

    $ mkdir -p ~/work/dddvb
    $ cd ~/work/dddvb
    

     ドライバのソースファイルを展開。

    $ wget https://github.com/DigitalDevices/dddvb/archive/0.9.37.zip
    $ unzip 0.9.37.zip
    $ cd dddvb-0.9.37
    

     dkms.confで指定するモジュールを確認するため、いったんmakeで生成する。

    $ make
    

     dkms.confを生成する。

    $ cat <<'EOF' | tee dkms.conf
    PACKAGE_NAME=dddvb
    PACKAGE_VERSION=0.9.37
    AUTOINSTALL="yes"
    CHECK_MODULE_VERSION="no"
    MAKE="'make' all KVER=${kernelver}"
    CLEAN="make clean"
    EOF
    
    $ let "module_number=0" || true
    $ for file in $(find ./ -type f -name "*.ko"); do
          MODULE_LOCATION=$(dirname $file | cut -d\/ -f 2-)
          echo "BUILT_MODULE_NAME[$module_number]=\"$(basename $file .ko)\"" >> dkms.conf
          echo "BUILT_MODULE_LOCATION[$module_number]=\"$MODULE_LOCATION\"" >> dkms.conf
          echo "DEST_MODULE_LOCATION[$module_number]=\"/extramodules/$pkgname\"" >> dkms.conf
          let "module_number=${module_number}+1" || true
    done
    

     確認用に生成したモジュールなどを削除する。

    $ make clean
    

     この時点で生成されたdkms.confを確認すると以下のようになっているはず。

    $ cat dkms.conf
    PACKAGE_NAME=dddvb
    PACKAGE_VERSION=0.9.37
    AUTOINSTALL="yes"
    CHECK_MODULE_VERSION="no"
    MAKE="'make' all KVER=${kernelver}"
    CLEAN="make clean"
    BUILT_MODULE_NAME[0]="ddbridge"
    BUILT_MODULE_LOCATION[0]="ddbridge"
    DEST_MODULE_LOCATION[0]="/extramodules/"
    BUILT_MODULE_NAME[1]="octonet"
    BUILT_MODULE_LOCATION[1]="ddbridge"
    DEST_MODULE_LOCATION[1]="/extramodules/"
    BUILT_MODULE_NAME[2]="lnbp21"
    BUILT_MODULE_LOCATION[2]="frontends"
    DEST_MODULE_LOCATION[2]="/extramodules/"
    BUILT_MODULE_NAME[3]="cxd2099"
    BUILT_MODULE_LOCATION[3]="frontends"
    DEST_MODULE_LOCATION[3]="/extramodules/"
    BUILT_MODULE_NAME[4]="tda18271c2dd"
    BUILT_MODULE_LOCATION[4]="frontends"
    DEST_MODULE_LOCATION[4]="/extramodules/"
    BUILT_MODULE_NAME[5]="stv6111"
    BUILT_MODULE_LOCATION[5]="frontends"
    DEST_MODULE_LOCATION[5]="/extramodules/"
    BUILT_MODULE_NAME[6]="stv6110x"
    BUILT_MODULE_LOCATION[6]="frontends"
    DEST_MODULE_LOCATION[6]="/extramodules/"
    BUILT_MODULE_NAME[7]="cxd2843"
    BUILT_MODULE_LOCATION[7]="frontends"
    DEST_MODULE_LOCATION[7]="/extramodules/"
    BUILT_MODULE_NAME[8]="drxk"
    BUILT_MODULE_LOCATION[8]="frontends"
    DEST_MODULE_LOCATION[8]="/extramodules/"
    BUILT_MODULE_NAME[9]="lnbh25"
    BUILT_MODULE_LOCATION[9]="frontends"
    DEST_MODULE_LOCATION[9]="/extramodules/"
    BUILT_MODULE_NAME[10]="mxl5xx"
    BUILT_MODULE_LOCATION[10]="frontends"
    DEST_MODULE_LOCATION[10]="/extramodules/"
    BUILT_MODULE_NAME[11]="tda18212dd"
    BUILT_MODULE_LOCATION[11]="frontends"
    DEST_MODULE_LOCATION[11]="/extramodules/"
    BUILT_MODULE_NAME[12]="stv0910"
    BUILT_MODULE_LOCATION[12]="frontends"
    DEST_MODULE_LOCATION[12]="/extramodules/"
    BUILT_MODULE_NAME[13]="stv0367dd"
    BUILT_MODULE_LOCATION[13]="frontends"
    DEST_MODULE_LOCATION[13]="/extramodules/"
    BUILT_MODULE_NAME[14]="stv090x"
    BUILT_MODULE_LOCATION[14]="frontends"
    DEST_MODULE_LOCATION[14]="/extramodules/"
    BUILT_MODULE_NAME[15]="dvb-core"
    BUILT_MODULE_LOCATION[15]="dvb-core"
    DEST_MODULE_LOCATION[15]="/extramodules/"
    

     Makefile内のカーネル指定部分を書き換えて、ビルド時のカーネルでなくDKMSから指定されたカーネルが使用されるよう変更。

    $ sed -i -e 's/shell uname -r/KVER/g' Makefile
    

     ソースなどをDKMSで使用するディレクトリへコピー。
     ディレクトリ名を 「[パッケージ名]-[バージョン番号]」 のようにする必要がある。

    $ cd ..
    $ sudo cp -r dddvb-0.9.37 /usr/src/
    

    インストールとドライバの設定

     DKMSへの登録とインストール。

    # DKMSに登録
    $ sudo dkms add -m dddvb -v 0.9.37
    
    
    # 現在のカーネルへドライバをインストール
    $ sudo dkms install -m dddvb -v 0.9.37
    
    # DKMSによるインストール状態を確認
    $ dkms status
    dddvb, 0.9.37, 5.4.0-33-generic, x86_64: installed
    

     まだ実施していなければ、OS標準のドライバでなく追加したものを使うよう設定。

    $ sudo mkdir -p /etc/depmod.d
    $ echo 'search extra updates built-in' | sudo tee /etc/depmod.d/extra.conf
    $ sudo depmod -a
    

     以降は新しいカーネル(とカーネルヘッダ)がインストールされた際にドライバもインストールされるはず。
     dkms.confはドライバが同じバージョンであれば動的に生成せずとも同じものを使いまわせそう。

    (おまけ) ドライバのアンインストール

     allオプションで全てのカーネルからアンインストールされる。

    $ sudo dkms remove -m dddvb -v 0.9.37 --all
    
    ]]>
    https://note.spage.jp/archives/712/feed 0 712
    ASTRONEERのDedicatedサーバをWindowsで構築する https://note.spage.jp/archives/703 https://note.spage.jp/archives/703#comments Thu, 28 May 2020 05:32:09 +0000 https://note.spage.jp/?p=703  ASTRONEERで自己ホストの専用サーバを建てる手順について、公式情報だと体系的でなかったり具体的なファイル名などが不足していたりしたので、自分なりにもまとめてみる。

    参考

    確認環境

    • Windows10 1909

    構築手順

    ポートフォワーディング

     インターネットから接続可能にする場合、任意のUDPポートを一つだけ公開する必要がある。俗に言うポート開放。
     ここでは公式と同様に8777ポートを例とするが、クライアントから接続する際に指定するだけなので何でもよさそう。
     ポートフォワーディングの設定方法については多様すぎるため割愛。

    Dedicatedサーバのインストール

    1. SteamCMDをダウンロードして任意のフォルダへ展開する。
    2. SteamCMDと同一のフォルダ内にインストール/アップデート用のバッチファイルを作成。
      • バッチファイル名は適当に「AstroneerUpdate.bat」とか。
      • インストール先フォルダは任意に書き換えて、フォルダも作成しておく。
    @echo off
    start "" steamcmd.exe +login anonymous +force_install_dir "C:\steam\servers\astroneer" +app_update 728470 validate +quit
    
    1. 作成したバッチファイルを実行。
      • 今後アップデートの配信があった場合、同様にバッチを実行すれば上書きダウンロードされる。

    Dedicatedサーバの設定と実行

    1. インストールフォルダの「AstroServer.exe」と同一のフォルダ内に起動用バッチファイルを作成。
      • バッチファイル名は適当に「AstroServerStart.bat」とか。
      • 「AstroServer.exe」を直接実行するとバックグラウンドプロセスになり終了時にタスクマネージャ等から消すことになるので、ウインドウの起動/終了で管理できるようバッチから実行する。
    @echo off
    start AstroServer.exe
    pause
    
    1. バッチを実行し、いくらか待ってから適当にキー入力して終了。
      • デフォルトのコンフィグファイルを生成するため。
    2. [(インストールフォルダ)\Astro\Saved\Config\WindowsServer\AstroServerSettings.ini]を編集
      • PublicIP – グローバルIPを確認して記入
      • ServerName – 任意の名前
      • その他 – 必要に応じて編集
    3. [(インストールフォルダ)\Astro\Saved\Config\WindowsServer\Engine.ini]を編集
      • 以下のように任意のポート番号を指定するセクションを追記する。
    [URL]
    Port=8777
    
    1. 以上で最低限の設定は完了なので、起動用バッチファイルを実行すればクライアントから接続できるようになっているはず。

    クライアントから構築したサーバへの接続

     実際にゲームから接続する時にちょっと迷ったので方法を書いておく。

    1. メニューの「協力」タブから「専用サーバ」をクリック。
    1. 「専用サーバをお気に入りに追加」を選択し、必要事項を入力して「サーバーをお気に入りに追加」で追加。
      • サーバーURL – 「(IPアドレス):(ポート番号)」の形式で入力
      • サーバーのニックネーム – 任意で適当な名前を入力
    1. サーバ側がオンラインで問題もなければ、「ゲームに参加する」でサーバへ接続できる。
    ]]>
    https://note.spage.jp/archives/703/feed 2 703
    名前を変えたlibpcscliteにarib-b25-stream-testを対応させるメモ https://note.spage.jp/archives/701 https://note.spage.jp/archives/701#respond Wed, 27 May 2020 07:38:57 +0000 https://note.spage.jp/?p=701  例えばlibpcscliteの参照名をなんとなくlibpcsckaiに変更したくなった時にそのままではarib-b25-stream-testから新しい名前で参照できないので、変更を加えてからビルドする方法のメモ。

    # パッケージをダウンロード
    $ wget https://registry.npmjs.org/arib-b25-stream-test/-/arib-b25-stream-test-0.2.9.tgz
    
    $ tar -xzvf arib-b25-stream-test-0.2.9.tgz
    $ cd package/
    
    # Makefileで指定するライブラリ名を書き換え
    $ sed -i -e "s/libpcsclite/libpcsckai/g" src/Makefile
    
    # インストール
    $ sudo npm install . -g --unsafe
    

    ]]>
    https://note.spage.jp/archives/701/feed 0 701
    Vimの自動整形を設定で恒久的にオフにする https://note.spage.jp/archives/689 https://note.spage.jp/archives/689#respond Fri, 08 May 2020 06:54:16 +0000 https://note.spage.jp/?p=689  Ubuntu 20.04でVimを使おうとしたら自動整形がデフォルトでオンになっており、適当にコピペしたら勝手にインデントやコメントアウトが入ってビビった。
     使い方によると思いますが、自分の場合は無いほうが扱いやすいのでオフにする設定をメモしておく。

    確認環境

    • Ubuntu 20.04 LTS
    • VIM version 8.1.2269

    設定方法

    一般ユーザ

    mkdir -p ~/.vim/after/plugin
    cat <<'EOF' | tee -a ~/.vim/after/plugin/common-settings.vim
    autocmd Filetype * set formatoptions-=r
    autocmd Filetype * set formatoptions-=o
    EOF
    

    rootユーザ(およびsudoで実行時のvim)

    sudo mkdir -p /root/.vim/after/plugin
    cat <<'EOF' | sudo tee -a /root/.vim/after/plugin/common-settings.vim
    autocmd Filetype * set formatoptions-=r
    autocmd Filetype * set formatoptions-=o
    EOF
    

    ]]>
    https://note.spage.jp/archives/689/feed 0 689