X



Vim Part28
■ このスレッドは過去ログ倉庫に格納されています
0198名無しさん@お腹いっぱい。
垢版 |
2018/08/04(土) 23:29:19.79
自作した関数にカレントファイルの名前を渡したいです。
:echo fnamemodify(@%, ":t:r")
とすると望み通りの結果が得られます。
ところが
function! MyFunc(arg)
echo a:arg
endfunction
c​ommand! -nargs=1 MyCmd call MyFunc(<f-args>)
nnoremap <Leader><Space> :<C-u>MyCmd<Space>fnamemodify(@%, ":t:r")<CR>
↑というような定義をvimrcに書いておいて<Leader><Space>を打ち込むと「fnamemodify(@%, ":t:r")」という文字列そのものが
a:argに渡されてしまい,展開されません。
どなたかこの原因が分かるかたいらっしゃいますか。
0200名無しさん@お腹いっぱい。
垢版 |
2018/08/05(日) 09:28:36.21
テキストオブジェクトはすげーと思ったけど他のvimの利点って何なの
機能拡張はvimの専売特許じゃないしやっぱり最初から入ってることと軽さ?
必要なキーは多くないけど操作は複雑じゃない訳じゃないし
0204名無しさん@お腹いっぱい。
垢版 |
2018/08/05(日) 12:30:21.01
>>198
%:r を使うんじゃだめなの?
自分は main.c をコンパイルして実行する (gcc -o main main.c && ./main) のを
:!clear && gcc % -o %:r && ./%:r
みたいにして関数とマッピング作ってるけど
0207名無しさん@お腹いっぱい。
垢版 |
2018/08/07(火) 06:50:47.81
ようやくHJKL慣れてきたわ
でも、普段Windows使ってWebブラウザの検索ボックス内でもHJKL押すようになってしまってつらい…
0209名無しさん@お腹いっぱい。
垢版 |
2018/08/07(火) 12:42:28.11
使うなと言う気はさらさらないが
hl押しっぱだけはアホの極み
0210名無しさん@お腹いっぱい。
垢版 |
2018/08/07(火) 18:12:01.37
esc等のノーマルモードに抜けるコマンドをつい打ってしまうってならまだ分からなくもないけど
検索ボックス(文字入力中=挿入モード)でhjklみたいなノーマルモードのコマンドをつい打ってしまうってのはちょっと有り得ない
最近vimの存在を知ってイキってみたかっただけの嘘松ぽい
0214名無しさん@お腹いっぱい。
垢版 |
2018/08/08(水) 02:12:09.36
>>205
ターミナル側の設定はどうなってるって訊いてるだろはよ答えろやボケ
おおかた「あいまい文字幅を西洋の方式で解釈する」みたいな設定にしてるんだろうな
せっかく助け船を出してやったのに反応なしとか考えられん
0217名無しさん@お腹いっぱい。
垢版 |
2018/08/08(水) 23:11:48.05
>>209
f F t T w W b B などを使うってこと?

上下の移動は relative number と組み合わせて、10j とかやるけど
左右の移動は、何ワード目か数えるのが面倒で(思考が中断されるので)
hl 連打になってしまう
wb 連打もするけど、大抵行きすぎる
0221名無しさん@お腹いっぱい。
垢版 |
2018/08/11(土) 19:45:49.58
219だけど、俺は解決まで数時間ググることたまにあるけど、みんなそんな簡単に諦めたり人に聞いたりするの?
それともググるのがうまいのだろうか
0223名無しさん@お腹いっぱい。
垢版 |
2018/08/16(木) 15:53:49.75
そもそも血眼になって調べるのってかなり深刻な場合だよな
一台目のPCが故障して手元に携帯しかないとかそんな状態
コマンドや言語を学習するのにググりまくるのもあるっちゃあるがまず長時間持たん
0225名無しさん@お腹いっぱい。
垢版 |
2018/08/17(金) 01:13:44.51
先輩方ちょっと教えて下さい。
最近Macを買ったのを機にVim(MacVim-kaoriya版)を使い始めたのですが、
Ctrl-uのキーバインドだけが何故かCtrl-U(大文字)じゃないと受付けてくれません。

自分でも調べて、キーをリマップしようと.vimrcを作り
noremap <C-u> <C-U>
noremap! <C-u> <C-U>
と書いたのですがダメです。Ctrl-Shift-Uじゃないと受付けてくれず。
一緒に書いた
noremap <C-l> <esc>
noremap! <C-l> <esc>
の方は効いてるので.vimrcは読み込んでくれてるようなんですが、、
大文字しか受け付けない原因か、リマップ方法の訂正など教えて頂けると助かります
0226名無しさん@お腹いっぱい。
垢版 |
2018/08/17(金) 01:51:23.62
>>225
あのさ,すぐ上のレスに書いてあることも読めんのか?
ちっとは検索くらいしろ
せめて「これこれこういう語句で検索しましたが欲しい情報が見当たりません」
くらい書けるだろ?


「Mac OS X Vim Ctrl+U 効かない」
で一番上に挙がった候補↓
https://qiita.com/furu8ma/items/7e421da98680d1c4c0f8
二番目↓
https://stackoverflow.com/q/29712392

ことえりの設定を変えるらしいぞ

もう一度いうがググれ。まずは。
0227名無しさん@お腹いっぱい。
垢版 |
2018/08/17(金) 03:47:46.89
>>226
コレですね
Enter2回がどうも慣れずにWindows風の確定になるように変更しました
でも結局Optionを元に戻すしかなくて両立は無理なんですね
0231名無しさん@お腹いっぱい。
垢版 |
2018/08/19(日) 04:36:11.37
ド素人です


対となるカッコの自動挿入をオンにしてるのだが、カッコ内の入力が住んだ後にできるだけ少ない手数でカッコの後ろに出る方法を考えてる

カッコが入れ子であることも考慮すると、挿入ノーマルモードに移行して
・f 適当な文字
・A
・w
で移動するっていうのが普通ですかね?
0237名無しさん@お腹いっぱい。
垢版 |
2018/08/20(月) 09:16:54.41
データーセンターだと自分のスマホを持ち込めず自由にネットにアクセスできないし、GUIの入ってないサーバー作業中にもしものことがあってもいいようにかな
0239名無しさん@お腹いっぱい。
垢版 |
2018/08/20(月) 14:46:21.86
spacevim なんてあるんだな
しかも「spacemacs に触発されて」ときた
正直、流行らんだろ


emacs は lisp の実行環境だから他を寄せ付けない拡張性があって、それに Vim の、これもまた他を寄せ付けない超高速入力を合体させようという試みとして凄い価値のあるプロジェクトなわけだが、spacevim は目的わからん
0242名無しさん@お腹いっぱい。
垢版 |
2018/08/22(水) 05:15:25.18
ようやくvimに慣れてきたところだけどプラグイン管理ってどれ入れればいいの
neobundleだかdein.vimだか知らんが設定ファイル自体が煩雑って
バニラ状態で事足りてるから入れなくてもいいか
0245名無しさん@お腹いっぱい。
垢版 |
2018/08/22(水) 10:06:20.49
俺もvim-plug
0247名無しさん@お腹いっぱい。
垢版 |
2018/08/22(水) 11:23:22.57
minpackですかね
でもvimdoc-jaとiceberg.vimしか入れてないのであんま参考にならんかも
minpackでは入らないプラグインとかあるみたいだし。
0248名無しさん@お腹いっぱい。
垢版 |
2018/08/23(木) 06:31:28.74
ftditectで
「.origの場合は.origではなくその直前の拡張子を本来の拡張子として処理する」
みたいなことできませんかね。
0250名無しさん@お腹いっぱい。
垢版 |
2018/08/23(木) 21:33:26.89
>>249
ありがとうございます。
できそうです。

あと すいません。もう一つ質問なんですが
複数のfiletypeに対して同一のftpluginを実行したい場合、
例えばlexとyaccとcに対してはset cindentを適用するといったようなことはできますか
:help usr_41.txtは読んだのですが あまり助けにならなさそうでした
私が理解していないだけで書いてあるかもしれません。どうかよろしくおねがいします。
0252名無しさん@お腹いっぱい。
垢版 |
2018/08/23(木) 22:19:26.71
>>251
わがままでもうしわけないんですが
それだと例えば新たに拡張子.Cをfiletype cと見做すように設定したときに
二重に変更する必要がありますよね
元の*.C→set filetype=cと、その*.C→set cindent
これは予期せぬ不具合を生じる原因になると思うので
できたらfiletypeで判別したいです
なんとなくですが&filetypeを使って場合分けできないかなとか思っています。
0253名無しさん@お腹いっぱい。
垢版 |
2018/08/24(金) 00:33:59.01
>>252
au FileType lex,yacc setl cindent

>>251 からの改良点は
・autocmd イベントに FileType を使うことで拡張子問題に対応 ('filetype' オプションに追従)
・filetype=c では同梱プラグインで cindent が設定されるため自分の vimrc には書かないことに
・ファイルタイプ特有の設定はバッファローカルで設定するべき。よって setl[ocal]

これだけだと lex,yacc ファイルを編集中に手動で :setl ft=txt とかしたときに cindent 設定が残り続けることになるが、問題になることは少ないだろう

余談だが .C はデフォルトでは C++ ファイルとして認識されるようだ
0257名無しさん@お腹いっぱい。
垢版 |
2018/08/25(土) 22:50:08.95
filetypeがnerdtreeのときのみ以下のキーマップを割り当てたいのですがどうすればよいのやら...
理想: 'R'キーを1回入力するとnerdtreeで定義済みの'R'キーを2回入力したことになる
妥協: '<C-r>'を入力するとnerdtreeで定義済みの'R'キーを2入力したことになる

理想を実現しようと以下のように書いたけど,
E21: Cannot make changes, 'modifiable' is off
と怒られてしまいます...
```
augroup nerdtree_custom
autocmd!
augroup END

autocmd nerdtree_custom filetype nerdtree set modifiable
autocmd nerdtree_custom filetype nerdtree set write
autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R RR
```
0258名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 00:44:56.37
>>257
nerdtreeのバッファで R のマップを調べる
:map R
すると
n R *@:call nerdtree#ui_glue#invokeKeyMap("R")<CR>
と表示されるのでこれをコピペして、繰り返し回数を指定:

autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R 2:call nerdtree#ui_glue#invokeKeyMap("R")<CR>
0259名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 06:57:39.24
>>258
ちょっとよくないな
これだと 2R とかで E16: Invalid range ってなる
このコマンドの場合は任意の回数指定出来なくても問題なさそうだけど
あと何故かカーソルが下に移動してしまう

単に :call を二回でよかったみたい:

autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R :call nerdtree#ui_glue#invokeKeyMap('R')<CR>:call nerdtree#ui_glue#invokeKeyMap('R')<CR>
0260名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 07:00:35.95
>>258
解決策だけでなく,手順までご教授頂き,本当にありがとうございます...
Vimと共に歩んでいきます
0261名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 07:05:17.61
>>259
おっしゃる通り,今回のコマンドは任意回数指定できなくても問題のないものでしたので,
全然気にしていませんでした...
それでもやはりコマンドが任意回数指定できないのは気になるので,:call を2回呼ぶことにしますね.
0267名無しさん@お腹いっぱい。
垢版 |
2018/08/27(月) 23:57:52.00
これって地震が起きた後の地震速報であって揺れが到達する前に発せられる緊急地震速報じゃないと思うんだがどう?
0269名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 08:45:24.61
ls結果をvimで表示したらファイル名の前後にゴミが入るんだけどどうすれば
[01;35maaa.jpg[0m
[01;35mbbb.jpg[0m
ls *jpg | vim -でこんなのが
0271名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 09:02:16.53
>>269
>>270の言う通りlsコマンドに色付けをしない旨のオプションを付ける(GNU lsの場合--color=none)のが最も手っ取り早い。
汎用性を持たせる(manコマンドなどの出力結果でも同様の現象が起こる)にはcol -bxをパイプで噛ませるのがいいと思う。
今 調べてみたら
Ansifiler(http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php)とか
ansi2txt(https://sourceforge.net/projects/ansi2txt/
というのもあるみたい。これはcolコマンドを使う方法が,本来のcolコマンドの目的ではなくその仕様を利用している不安定な方法に対して
まさにその目的(ANSI色制御綴りを除去する)ことに特化していることが利点だな。
ただし両方とも野良ビルドする必要があるが……。
0272名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 09:05:33.76
>>269
lsの結果に色付いてると思うけどそのカラー設定が混ざってる
$ type lsをやって「ls は `ls --color' のエイリアスです」になるはず
alias ls='ls --color'の記述が~/.bashrcになくても/etc/bash.bashrcにあると思う
エイリアスは\で無効にできるから\ls *jpg | vim -なら大丈夫
0273名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 09:15:56.51
deopleteを導入したくてtomlファイルに以下を追加したのですが
```
[[plugins]]
repo = 'Shougo/deoplete.nvim'
let g:deoplete#enable_at_startup = 1
```
以下のエラーメッセージが表示されます.
[dein] Invalid toml format: /c/Users/hoge/.vim/dein/userconfig/plugins.toml
[dein] Text.TOML: Illegal toml format at L39:`g:deoplete#enable_at_startup = 1':630.


この書き方のどこがillegalなのでしょうか...
0275名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 11:30:41.72
Vim初心者ですが、ファイルタイプ毎にタブインデントとスペースインデントを変えるってどうやりますか?
調べてもaugroupでスペースの数を変えるのしか出できません

C言語の時には、表示スペース8のタブインデント、Pythonのときには表示スペース4のスペースインデント...といったやつです
0278名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 18:42:55.07
言語別の設定をするには、ftplugin以下にファイルタイプ名.vimを作ってそこで設定すればいいはずなんだけど、あんまり有効活用されてないよね(´・ω・`)
0282名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 21:41:07.15
>>276
ありがとうございます!
以下のように記述することで無事,エラーメッセージなしでtomlファイルを読み込むことができました.
```
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_add = '''
let g:deoplete#enable_at_startup = 1
'''
```
0283名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 21:48:52.21
Windows 10 + Git Bash + Vim 8の環境で,Neovimは使わずにdeoplete.nvimを使用したいと考えていますが,
下記のエラーメッセージが表示されます.
neovimを導入せずに解決する方法はありますでしょうか...

```エラーメッセージ
Messages maintainer: Bram Moolenaar <Bram@vim.org>
[vim-hug-neovim-rpc] failed executing: pythonx import neovim
[vim-hug-neovim-rpc] Vim(pythonx):Traceback (most recent call last):
```

参考までに,
・plugins.tomlの内容
・vim --version の結果(>>284
を以下に載せます.

```plugins.toml
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_add = '''
let g:deoplete#enable_at_startup = 1
'''

[[plugins]]
repo = 'roxma/nvim-yarp'

[[plugins]]
repo = 'roxma/vim-hug-neovim-rpc'
```
0284名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 21:50:45.84
```vim --version (1/2)
VIM - Vi IMproved 8.1 (2018 May 17, compiled May 31 2018 11:16:13)
Included patches: 1-22
Compiled by <alexpux@gmail.com>
Huge version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
+arabic +file_in_path -mouse_sysmouse -tcl
+autocmd +find_in_path +mouse_urxvt +termguicolors
-autoservername +float +mouse_xterm +terminal
-balloon_eval +folding +multi_byte +terminfo
+balloon_eval_term -footer +multi_lang +termresponse
-browse +fork() -mzscheme +textobjects
++builtin_terms +gettext +netbeans_intg +timers
+byte_offset -hangul_input +num64 +title
+channel +iconv +packages -toolbar
+cindent +insert_expand +path_extra +user_commands
-clientserver +job +perl/dyn +vertsplit
+clipboard +jumplist +persistent_undo +virtualedit
+cmdline_compl +keymap +postscript +visual
+cmdline_hist +lambda +printer +visualextra
```
0285名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 21:51:38.72
```vim --versions(2/2)
+cmdline_info +langmap +profile +viminfo
+comments +libcall +python/dyn +vreplace
+conceal +linebreak +python3/dyn +wildignore
+cryptv +lispindent +quickfix +wildmenu
+cscope +listcmds +reltime +windows
+cursorbind +localmap +rightleft +writebackup
+cursorshape -lua +ruby/dyn -X11
+dialog_con +menu +scrollbind -xfontset
+diff +mksession +signs -xim
+digraphs +modify_fname +smartindent -xpm
-dnd +mouse +startuptime -xsmp
-ebcdic -mouseshape +statusline -xterm_clipboard
+emacs_tags +mouse_dec -sun_workshop -xterm_save
+eval -mouse_gpm +syntax
+ex_extra -mouse_jsbterm +tag_binary
+extra_search +mouse_netterm +tag_old_static
system vimrc file: "/etc/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/etc"
f-b for $VIMRUNTIME: "/usr/share/vim/vim81"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -I/usr/include/ncursesw -march=x86-64 -mtune=generic -O2 -pipe -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -pipe -fstack-protector -pipe -Wl,--as-needed -o vim.exe
-lm -lncursesw -liconv -lacl -lintl -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,
--enable-auto-image-base -fstack-protector-strong -L/usr/lib/perl5/core_perl/CORE -lperl -lpthread -ldl -lcrypt
```
0286名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 22:05:30.07
Cで #include < のときだけ <> 補完したいんだけど、なにかいい方法ありますか
0289名無しさん@お腹いっぱい。
垢版 |
2018/08/29(水) 08:48:07.66
spacemacs (とか spacevim?) がある今、Vimを好むかEmacsを好むかの違いは Vim script と elisp のどちらがより高い拡張性を持ってるかの違いになったわけだが、みなはどう思う
0290名無しさん@お腹いっぱい。
垢版 |
2018/08/29(水) 11:13:37.47
インサートでキーをホームにマップするとインデント無視して行頭まで行くけど、インデント無視しない方法ありますか
0292名無しさん@お腹いっぱい。
垢版 |
2018/08/31(金) 00:54:55.12
【実現したいこと】
Git-bash標準のvimでdeoplete.nvimによる補完を有効にする

【現状】
deoplete.nvimによる補完が効かない

【環境】
- Windows 10
- Git-Bash (C:\Program Files\git-bash.exe)
- Vim 8.1 (C:\Program Files\Git\usr\bin\vim.exe)
- Python 3.6.5 (C:\Program Files\Python36\python.exe)
- Windowsの環境変数: C:\Program Files\Python36\, C:\Program Files\Python36\Scripts\
- dein.vimを使用

続きは>>293
0293名無しさん@お腹いっぱい。
垢版 |
2018/08/31(金) 00:55:32.29
【行ったこと】
1. chocolateyをインストール
2. コマンドプロンプト(管理者権限)にて > choco install neovim
 nvim.exeの場所はC:\tools\neovim\Neovim\bin\nvim.exe
3. vim上で:echo has("python3")が0であることを確認
4. $HOME/.vimrc に以下の内容を記述
 set pythonthreedll=set pythonthreedll=/c/program\ files/python36/python36.dll
5. vim上で:echo has("python3")が1であることを確認
6. $HOME/.bashrc に以下の内容を記述
 export PYTHONPATH=/c/program\ files/python36/lib/site-packages
7. vim上で:python3 import neovim をすると以下のエラーが出た
 ModuleNotFoundError: No module named 'msgpack'

続きは>>294
0294名無しさん@お腹いっぱい。
垢版 |
2018/08/31(金) 00:55:43.97
8. そこで,[https://github.com/neovim/python-client/issues/292]を参考に
 コマンドプロンプト(管理者権限)にて,
 > pip3 uninstall msgpack
 > pip3 uninstall neovim
 > pip3 install msgpack-python
 > pip3 install neovim
 を実行
9. vim上で:python3 import neovim をすると以下のエラーが出た
 ModuleNotFoundError: No module named 'greenlet'
10. neovimは/c/program\ files/python36/lib/site-packages に存在するが,
  neovimと依存関係のgreenlet, pyuvは$HOME/appdata/roaming/python/python36/lib/site-packagesに存在することを確認した
  そのため,greenlet, pyuv関連フォルダ,ファイルを/c/program\ files/python36/lib/site-packagesに移動した
11. vim上で:python3 import neovim をしてもエラーメッセージは表示されなくなった
12. plugins.tomlに以下の内容を記述
  [[plugins]]
   repo = 'Shougo/deoplete.nvim'
   hook_add = '''
   let g:deoplete#enable_at_startup = 1
   '''

  [[plugins]]
   repo = 'roxma/nvim-yarp'

  [[plugins]]
   repo = 'roxma/vim-hug-neovim-rpc'
13. vimを再起動し,上記のプラグインをインストールしたが,deoplete.nvimによる補完が働かないことを確認した
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況