1

私は幸せな Emacs ユーザーです。とにかく、別のウィンドウを開きたくない場合は、Vim がより適している分野があることがわかりました。これは、Linux ターミナルまたは Windows CLI 内にあります。この軽量タスク用のマイクロ Emacs ディストリビューションがいくつかありますが、まだ良いものを見つけられていません。

私にとって典型的な Vim の使用法は、より強力な代替手段lessです。たとえば、次のようになります。

 dir | vim -

今、私は自分の問題/質問に行きます。

まず、Vim はファイルの先頭から開始します。画面の最後の行にカーソルを置きたいのですが、うまくいきdir | vim +L -ません。Lコマンドではないからだと思いますex。どうすればこれを克服できますか?

ブラウジングを終えて終了したいときは、タイプする必要があります: :q!5 つのキーとシフト (つまり両手)。高速な出力チェックには本当にたくさんあります。コロン コマンドはシフトが必要なため、非常に低速です。コロン:を F2 や Tab キーなどのファンクション キーに置き換える方法はあるのでしょうか。!また、キーをシフトされていないキー、のような単一のキーに置き換えたいと思います`-=[];'\,./。これは可能ですか?そうすることの欠点は何ですか?

編集

:コロンの置換による注意これは、すべてのコロン コマンドの記号のみを置換することを意味する<F2>q<CR>ため、quit と入力できます。たとえば、Emacs では、修飾キー "Meta" (通常はAltキー) を非標準キーに割り当てたり、プレフィックスで始まるすべてのコマンドをCtrl-x別のキーに再マップしたりできます。

4

3 に答える 3

3

Ubuntu での Vim73 のインストールには、VIM を "less" のように実行するためのスクリプトがあります。あなたが説明する状況でこれを使用しています。
スクリプトは次のless.sh場所にあります (インストール パスに置き換えます)。/usr/share/vim/vim73/macros/less.sh

サーバーにない場合のスクリプトは
次の/usr/share/vim/vim73/macros/less.shとおりです。

#!/bin/sh
# Shell script to start Vim with less.vim.
# Read stdin if no arguments were given.

if test -t 1; then
 if test $# = 0; then
   vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
  else
   vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
  fi
else
  # Output is not a terminal, cat arguments or stdin
  if test $# = 0; then
    cat
  else
    cat "$@"
  fi
fi

すべてのプラグインを「オフ」にしていることに注意してください。この方法で開始したときに
特別なことをしたい場合は、エイリアスを使用して開始できます。.vimrc

alias lessv='use_less=1 /usr/share/vim/vim73/macros/less.sh'
# use it:
lessv some_file
# and
dir | lessv   # no need for "-"

$use_less次に、 のように参照できます。.vimrcたとえばfinish、通常のすべてのマッピングの前に参照できます。「通常の方法」で vim を起動すると、エラーは発生しません ( のようなテストを使用する必要はありませんexists("$use_less"))。それを使用する正当な理由が他にない場合、use_less という名前の変数を使用するのは楽しいことです。

で開くと、コマンドに関するヘルプがいくつかありますless.sh。ヒットするだけh
で、vim ヘルプでも見つかりました。インターネットで コードを見つけてリンクを使用しようとしましたが、うまくいきませんでした。ただし、ファイルはインストールの一部だと思います。:h less
less.vim

編集:
Windows:
一部のインストールのWindows ではless.bat、多かれ少なかれ以下のように vim を起動する方法もあります。インストールに含まれていない場合は、ここに貼り付けます:
script C:\Program\Vim\vim73\macros\less.bat:

@echo off
rem batch file to start Vim with less.vim.
rem Read stdin if no arguments were given.
rem Written by Ken Takata.

if "%1"=="" (
  vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
) else (
  vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" %*
)

最後のヒント:
jeCtrl+ jCtrl+ eCtrl+nはすべて 1 行下にスクロールするようにマップされます (最初にウィンドウの下部にカーソルを置きます)。
kyCtrl+ kCtrl+ yCtrl+pはすべて1 行上にスクロールするようにマップされます(less と同様に、最初にカーソルをウィンドウの下部に配置します)。上下
移動<Up>するには、 と を使用し<Down>ます。

于 2013-02-25T02:18:09.217 に答える
3

Vim ではL、カーソルをウィンドウの下部に配置するために使用されます。

を使用$ command | vim - +8して、カーソルを 8 行目に置きます。

+$最後の行にカーソルを置くために使用します。

~/.vimrc気に入らない場合は、次の行を配置でき:q!ます。

nnoremap <F2> :q!<CR>

また、何が嫌いlessですか?

編集

$ command | vim - +'norm L'

表示されている最後の行にカーソルを置きます。

代わりに任意のキーを使用できますが:、Vim は多かれ少なかれキーボード全体を使用します。代替キーを賢く選択し、次のようなものを使用する必要があります~/.vimrc

nnoremap <F2> :
于 2013-02-24T15:53:42.137 に答える
0

Linux では、次のことができます。

ls | vim +$ +'map <F2> :' +'map <F3> !' -
于 2013-02-24T15:46:15.273 に答える