web-dev-qa-db-ja.com

Gedit、Gvim、Vim、NanoがEnd-of-File改行文字を追加しないようにする方法

テキストファイルの最後の行に改行なし文字を追加した単純なテキスト文字列が必要な場合があります:... eg。別のファイルを連結します。

いくつかのエディター自動を押していない場合でも、改行文字を追加してテキストを変更しますEnter

Remains unmodified: Emacs、SciTE、Kate、Bluefish、Notepad(wine)

Newline is added: Gedit、Gvim、Vim、Nano

Gedit、Gvim、およびVimを微調整して、入力したものだけを保存する方法があるかどうかを知りたいと思います。

私は現在Geditを使用していますが、Gvim/Vimに手を出しているので、これらのオン/オフを「切り替える」方法を知っておくと便利です...

PS。 Gedit、Gvim、Vimで同じファイルを再度開くと、カーソルのファイルの終わりの配置はテキストの終わりになりますが、実際には次の(空の)行に表示されるはずです。これは誤解を招く(しかし、それは私が慣れているためです)。

上記の観察を確認するために、hexeditorを使用しました。

39
Peter.O

gEditInstall gEdit 最後に改行を挿入することを無効にする方法はないようです この回答 を参照してください。

VimInstall vim (および gVimInstall vim )次のオプションを実行して-:set binaryを実行できます。バイナリに設定すると、ファイルがそのまま保存され、ドキュメントの最後に改行は挿入されません(既に保持されている改行がない場合)。いつでも:set nobinaryでこのオプションを元に戻すことができます。

ナノInstall Nano は少し簡単です。 nanoを起動するには、-Lフラグを使用します(視覚タイプが多ければ--nonewlines)。これにより、ファイルの末尾への改行の自動追加が無効になります(実際に入力されていない限り)。理想的には、~/.bashrcalias nano="nano -L"にこのエイリアスを設定できます。これにより、Nanoが起動され、改行フラグは含まれません。

私はあなたが何をしているのか正確にはわからないので、私はあなたを指すつもりです なぜファイルは改行で終わるべきですか? それがなぜそこにあるのかを説明するかもしれません。つまり、一部のアプリケーションは、EOLの直前にEOFが見つからないと失敗します。

47
Marco Ceppi

GEditの場合:

Ubuntu 12.04以降を使用している場合は、既に動作を設定できます。

グラフィカルユーザーインターフェイスを通じて:

  1. Dconfエディター(dconf-editor)を実行します
  2. orggnomegeditpreferenceseditorに移動します
    (または単にensure-trailing-newlineを検索)
  3. 改行を自動的に追加したくない場合は、ensure-trailing-newlineのチェックを外します。

コマンドラインで:

  1. ターミナルを開きます(ctrl+alt+T
  2. 次のコマンドを入力してください

    gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false
    

    これで完了です。

参照|ランチパッドのバグ

15
Ravi Gadhia

1行のファイルだけを書きたい場合は、おそらくechoが最も簡単な解決策です。

echo -n "the contents of my file" > myfile
0
jpillora