ラベル Vi/Vim の投稿を表示しています。 すべての投稿を表示
ラベル Vi/Vim の投稿を表示しています。 すべての投稿を表示

2014/01/07

Puppy Linux に Vim をインストール

Puppy Linux はviがe3viにaliasされているので,デフォルトのviとちょっと違い使いにくいです.
また,viよりもvimのほうがいいので,vimをインストールします.

環境は"Precise Puppy Japanses Edition retro 5.7.1 s65"です.

まずは普通に「メニュー」 -> 「セットアップ」 -> 「Puppyパッケージマネージャ」
で"vim"をインストールします.

Ubuntuなどだとこれで"/usr/bin"に"vim"という実行ファイルができるのですが,代わりに"vim-basic"というファイルができていました.

次に"vim"だけで実行できるように次のようにaliasを.bashrcに記述します.
echo "alias vim='/usr/bin/vim.basic'" >> ~/.bashrc


2013/10/12

Ubuntu10.04でVim7.3を使う

いまでも諸事情でUbuntu10.04も使っているのですが,
デフォルトでは10.04のVIMは7.2なので,もう少しバージョンが高い7.3を使えるようにします.

PPAで追加するだけです.
sudo add-apt-repository ppa:infie/vim-lucid
sudo apt-get update
sudo apt-get install vim

以下のサイトに詳しいことは書いていますが,oneiricのvimをlucidにバックポートしたものらしいです.
VIM lucid backports : Maarten Rijke
https://launchpad.net/~infie/+archive/vim-lucid

これでちょっと新しいvimを使えます.

2013/09/22

VimをNeobundleでプラグイン管理

今までVimでプラグイン管理を行なっていなかったので,
かなり遅いですが,Neobundleでプラグイン管理するようにしました.

ここではNeobundleのインストール方法を書きます .
ついでにNeobundleを使って,vimprocのインストールも行います.
 vimprocはvim内で非同期処理などを行うことができるようになるプラグインで,
いろいろなプラグインを使って行くなら入れておいて損はないものです.

まず,それぞれをgitからクローンします.

mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
git clone https://github.com/Shougo/vimproc ~/.vim/bundle/vimproc

そして,~/.vimrcに次のように追記します.

"""""""""""""""""""""""""""""""""""""""""""""""""
"Neobundle set up
"reference to  https://github.com/Shougo/neobundle.vim/blob/master/README.md
set nocompatible

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
endif

call neobundle#rc(expand('~/.vim/bundle/'))

" Let NeoBundle manage NeoBundle
NeoBundleFetch 'Shougo/neobundle.vim'
" Recommended to install
NeoBundle 'Shougo/vimproc'


filetype plugin on
filetype indent on

NeoBundleCheck
"""""""""""""""""""""""""""""""""""""""""""""""""
これでおkです.

実際にプラグインを入れたい時には
NeoBundle 'Shougo/vimproc'
のような感じで追加します.

通常はこのように書くだけでいいのですが,
vimprocはちょっと特殊でvimproc内でmakeしないといけないです.

なので,次のようにします.

cd ~/.vim/bundle/vimproc
make


実際にNeobundleでプラグインをインストールするときには,
.vimrcに追加して,
 vimを起動して

:NeobundleInstall
:NeobundleUpdate

すればおkです.





参考にしたサイト


vimにプラグイン管理のNeoBundleを入れて、ファイラーNERDTreeプラグインを入れてみる - Fevnirのブログ
http://fevnir-r.hateblo.jp/entry/2013/02/03/020607

neobundle.vim/README.md at master · Shougo/neobundle.vim · GitHub
https://github.com/Shougo/neobundle.vim/blob/master/README.md

Vim - NeoBundleの導入 - Qiita [キータ]
http://qiita.com/puriketu99/items/1c32d3f24cc2919203eb

Vimプラグインの管理にNeoBundleを使う - weblog of key_amb
http://keyamb.hatenablog.com/entry/2013/06/13/164725

Vim-users.jp - Hack #238: neobundle.vim で plugin をモダンに管理する
http://vim-users.jp/2011/10/hack238/

Vim のプラグインを neobundle で行うように変更&プラグインも見直し | Numb.
http://wp.graphact.com/2012/11/09/hello-neobundle-vim

2013/06/16

Vimにクリップボードからペーストしたときにぐちゃぐちゃになってしまうのを直す

Vimにクリップボードからのペースト(Ctrl+Shift+V)をすると
インデントの関係かわかりませんが
とにかく,ぐちゃぐちゃになってしまうことがあります.

これまでは1行1行直していたのですが,

それを防止する方法がありました.
ペーストをする前に
:set paste

をするといいです.

参考になったサイト
http://blog.layer8.sh/ja/2013/03/04/vim-trouble-shooting/

Vimで書き込み権限のないファイルを編集してしまったら

Vimであるファイルを編集をして
「よし,終わった!」
と思い,":wq"を押したら,
E45: 'readonly' オプションが設定されています (! を追加で上書き)
となったことはないですか?

書いてあるとおりに"!"をつけても書き込めないし,
最近は諦めて,sudoをつけてもう一回編集しなおしていたりしました.

しかし,このようになった場合でもファイルに上書きをすることができます.
:w !sudo tee %

これでおkです.
よかったよかった.

参考になったサイト
http://dev.koba206.com/?p=298

http://blog.layer8.sh/ja/2013/03/04/vim-trouble-shooting/

2012/10/14

Chrome,ChromiumをVimのように使うためのVichrome

自分は初心者Vimユーザーなのですが、ブラウザをVimのように操作できるChrome,Chromiumの拡張「Vichrome」があります。

https://chrome.google.com/webstore/detail/vichrome/gghkfhpblkcmlkmpcpgaajbbiikbhpdi

ほんとに「j」「k」で上下に動きます。

ブラウザ独自のキー配置もたくさんあるようです。

キーは次をみればわかりますかね


Vichrome Home · k2nr/ViChrome Wiki · GitHub
https://github.com/k2nr/ViChrome/wiki/Vichrome-Home

加えて拡張のオプションでもキーを見れます。

2012/09/14

Vimで日本語を使いやすくする。

vimで日本語を書くときに日本語入力設定(IMEで日本語を入力できるようにする)のままモードの切り替えができなかったり、モードを挿入モードにすると日本語入力にいちいち変えないといけない。

そこで、挿入モードに変えた時に自動的に日本語設定になって、コマンドモードに変えた時に自動的に日本語設定をOFFにできるらしいのでやってみた。

それを「日本語入力固定モード」と「vi協調モード」というらしい。

基本的には(というかほぼ全部)このサイトのとおりです。

Vim/GVimで「日本語入力固定モード」を使用する - fudist
https://sites.google.com/site/fudist/Home/vim-nihongo-ban/vim-japanese/ime-control

ここでは、このサイトを参考に自分のしたことを書いていきます。

まず、下のサイトから「日本語入力固定モード」に必要なファイルをダウンロードします。

fuenor/im_control.vim · GitHub
https://github.com/fuenor/im_control.vim

解凍して、中のpluginとdocを"~/.vim/"にコピーします。

そして、次を"~.vimrc"にエディタを使って追加します。

"ステータスバーを常に表示
set laststatus=2 

" 「日本語入力固定モード」切替キー
inoremap   =IMState('FixMode')
" PythonによるIBus制御指定
let IM_CtrlIBusPython = 1
" 押下後のIM切替開始までの反応が遅い場合は設定する
"set timeout timeoutlen=3000 ttimeoutlen=100
" 「日本語入力固定モード」がオンの場合、ステータス行にメッセージ表示
set statusline+=%{IMStatus('[日本語固定]')}
" im_control.vimがない環境でもエラーを出さないためのダミー関数
function! IMStatus(...)
  return ''
endfunction

自分の環境は「IM切り替え開始までの反応が遅い場合は設定する」を設定しなくても素早く切り替わっていました。

ここで、上の参考サイトとちょっと違うところは、一番上の「ステータスバーを常に表示」を書かないとメッセージを表示しない事でした。


これを書きこむと設定おkです。


使い方は

●「日本語入力固定モード」  「Ctrl + j」

 "ctrl + j"を押すと、一度"Esc"を押してコマンドモードになっても挿入モードになったら自動的に日 本語設定ONになる。

 "ctrl + j"を押すと、下に戻る。


●「vi協調モード」
 日本語設定ONのまま"Esc"を押してもきちんとコマンドモードに変わる

参考にしたサイト

sh1.2 pyblosxom : vim設定
http://sh1.2-d.jp/b/2007-04-18-02-27.html

2012/08/31

Vimで文字コードを変換して再読み込み

.vimrcで自動的に文字コードを識別して表示するようにしていますが、
カスタマイズした".vimrc"がない環境で文字化けしてしまったときに1回だけ文字コードを変換して直したいということがあったのでメモしておきます。

文字コードはlinuxだとデフォルトはUTF-8だと思うので、それ以外の文字コードの時に使います。(Shift_JISやcp932など)

:e ++enc=(文字コード)

ここを参考に

viで日本語の文字コードを自動判別 - 玉虫色に染まれ!
http://d.hatena.ne.jp/over80/20080907/1220794834



vimで文字化けしているファイルをエンコードの指定で読み直す | データセンターの専用サーバ データセンターダイレクト ブログ
http://blog.dc-d.jp/?p=119

2012/08/30

.vimrcの設定

自分はVimユーザですが、また、デフォルトも全然使い切れていないので、あまり".vimrc"をいじってはいません。
しかし、別のPCで".vimrc"をカスタマイズしていないVimを使ったら使いにくかったので設定のバックアップやメモを兼ねて載せておきます。

 """""""""""""""""""""""""""
" 基本設定
""""""""""""""""""""""""""
" viとの互換性をとらない(vimの独自拡張機能を使う為)
set nocompatible
" 行番号を表示
set number
"文字コード自動判別
set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8

""""""""""""""""""""""""""""
" 表示設定
"""""""""""""""""""""""""""""
" 自動インデント
set autoindent

""""""""""""""""""""""""""""
"検索設定
"""""""""""""""""""""""""""
" 検索結果をハイライト
set hlsearch
" 検索の時に大文字小文字を区別しない
set ignorecase