23

開いているファイルのテキストを水平方向に中央揃えにするにはどうすればよいですか?

vimの表示方法を変更するためだけに、ファイルを変更したくありません。

より明確にするために、ファイルを開くと、現在次のような状況があります。

|<------ textwidth=80 ------->|<-------------- padding -------------->|
|lorem ipsum dolor sit amet.. 
|dsdsda da dsa dsa 

私が持ちたいのは次のとおりです。

|<--- padding/2 --->|<------ textwidth=80 ------->|<--- padding/2 --->|
|                    lorem ipsum dolor sit amet.. 
|                    dsdsda da dsa dsa 

もちろん、 と のすべての値textwidthに対してpadding.

4

5 に答える 5

12

Vim は単一のドキュメント エディタとして設計されているわけではありません (プログラミングでは、すべてのピクセルに関連情報を入力する必要があります)。

a) 折り列を拡張することで、左余白を大きくすることができます。残念ながら、これは 12 文字のセルに制限されています。

:let &foldcolumn = (&columns - &textwidth) / 2

b) 左側に空のパディング ウィンドウを作成できます (対称性のために、場合によっては右側にも)。

:execute 'topleft' ((&columns - &textwidth) / 2 - 1) . 'vsplit _paddding_' | wincmd p

煩わしいウィンドウ分割は、次の方法でクリアできます。

:hi VertSplit guifg=bg guibg=NONE gui=NONE
于 2012-10-18T10:58:11.003 に答える
4

その外観を実現できるプラグインがいくつか存在します。それらのほとんどは、MacOS 用のWriteroomエディターに触発されているようです。

たとえば、このVimRoomプラグインのスクリーンショットを参照するか、Web で「vim writeroom プラグイン」を検索してください。

ここに画像の説明を入力

于 2016-09-04T15:19:50.363 に答える
4

画面を使用してポイントに到達できると思います。縦に並んだ3つの異なるウィンドウを開くことができます

CTRL+a 、SHIFT+|

その後、2 つ目に移動します。

于 2012-10-18T10:44:05.007 に答える
1

似たようなものを探していましたが、@ingo-karkat の回答のおかげで、中央のコンテンツのオン/オフを切り替える機能を作成できました。

function! WriteRoomToggle()
  let l:name = '_writeroom_'
  if bufwinnr(l:name) > 0
    wincmd o
  else
    let l:width = (&columns - &textwidth) / 5
    execute 'topleft' l:width . 'vsplit +setlocal\ nobuflisted' l:name | wincmd p
    execute 'botright' l:width . 'vsplit +setlocal\ nobuflisted' l:name | wincmd p
    endif
endfunction

推奨されるオプションとマッピング:

" hide vertical split separator
hi VertSplit guifg=bg guibg=NONE gui=NONE
" Do not resize windows on close (good if you also use NERDTree)
set noequalalways

" toggle writeroom on/off
map <silent><Leader>v :call WriteRoomToggle()<CR>

" delete buffer without closing the window
command! Bdelete if len(getbufinfo({'buflisted':1})) > 1 | bprev | bdelete# | else | bdelete | endif
noremap <Leader>x :Bdelete<CR>

于 2020-01-28T19:31:04.257 に答える