Vim Part29

レス数が900を超えています。1000を超えると表示できなくなるよ。
2019/02/14(木) 00:54:19.01
Vim 6以降に関する話題です。
http://www.vim.org/

前スレ
Vim Part28
https://mevius.5ch.net/test/read.cgi/unix/1526552297/

関連情報は>>2-3あたり
2020/06/20(土) 21:45:31.94
surround的な機能は本体に組み込んでしまっていい気がする
でもsurround.vim自体はリピートがうまくできないから公式化はダメだな
2020/06/20(土) 23:38:37.40
>>813
30.
みたいのじゃだめなの?
2020/06/20(土) 23:40:36.68
>>816
本気で言ってるのか
2020/06/22(月) 08:19:29.28
前回のカーソル位置復元と前回開いたファイル復元ってない?
2020/06/22(月) 08:22:23.57
ある
2020/06/22(月) 08:22:38.58
あるね
2020/06/23(火) 23:15:02.65
>>811-813
pythonのはコメントではなかったですね、失礼しました。
vimrcには複数行コメントはないんですね。
2020/07/08(水) 15:07:33.16
windowsでneovimのnvim-qt.exeを使っている場合に、IME入力すると、
変換中の文字幅と、変換後の文字幅が異なるのですが、設定でどうにかならないでしょうか?
(つまり、確定すると文字幅が少し広くなって、カーソルごと右へ移動する……)
2020/07/08(水) 18:57:50.55
2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
https://gihyo.jp/admin/clip/01/linux_dt/41187/30
viは古参のUNIXユーザなどの間では根強い人気を誇るが,GUIに慣れたユーザにとっては操作が難解で,敬遠しがちな存在でもある。
FedoraのBen Cottonは,「⁠コミットしようとするとviがデフォルトで立ち上がってしまうことで,Fedoraへの乗り換えを検討していたユーザの
入り口をバリアでふさいでしまっている」(⁠Ben Cotton / Fedoraプロジェクト)と指摘している。

ごもっともで
2020/07/08(水) 21:41:54.27
git commitでvi系以外のエディタが起動してきたとは焦る(´・ω・`)
2020/07/08(水) 22:03:48.28
それな
2020/07/08(水) 22:21:39.59
gitは設定しろよ
2020/07/08(水) 22:31:13.76
めったに起こらないことだから焦るんよ
OSインストール直後とか
2020/07/09(木) 02:12:33.25
alias nano vim
2020/07/09(木) 03:17:06.48
nanoの方が操作わからない
間違って起動したら毎回下のキーバインド見て閉じてる
2020/07/09(木) 05:37:10.60
四の五の言ったところでカンペがあるかどうかは雲泥の差だからアキラメロン
前知識なしで^がctrlだと気付けるかって問題はあるが
2020/07/16(木) 10:53:41.76
Vimの組込みPythonを使ってスクラッチパッドに書いたPythonを
素早く実行したいんだけど、何か良い方法ある?
普通のファイルの場合は「py3file <ファイル>」ってやるのが手っ取り早い方法
だろうけど、スクラッチパッドの性質上実行できない。
2020/07/16(木) 12:12:36.28
:%pyじゃダメなの?
2020/07/16(木) 13:14:05.74
>>832
「E471 引数が必要です」
って怒られる。
:pyの仕様を見ると,
第1引数に何らかのPythonの構文を書かないといけないみたい。

今やりたいのは
「:%」で示してくれたように単に文書全文をPythonとして実行したいってこと。
834名無しさん@お腹いっぱい。
垢版 |
2020/07/16(木) 13:40:53.89
>>831
コマンド書くしかなさそうだね

function! s:Python3 (startline, endline)
execute 'python3' join(getline(a:startline, a:endline), "\n")
endfunction
command! -range Python3 call <SID>Python3(<line1>, <line2>)

:%Python3 でバッファ全体
もちろん範囲選択も可
2020/07/16(木) 14:18:25.53
:%!python3
外部のpython呼び出すことになるけど、どのみち依存関係でpython入ってるだろ
2020/07/16(木) 17:06:40.74
>>834
ありがとう!
2020/07/20(月) 14:34:09.88
Vimの内蔵端末(:termとかで開ける奴)で,
シェルを使う時にバックスペースとかが効かないんだけど,
どんな設定を疑ったらいい?
シェル側の問題なのかVim側の問題なのかも分からなくて,
途方に暮れてる。
2020/07/20(月) 14:42:17.82
情報が何もなくて途方に暮れてる
2020/07/20(月) 17:15:22.83
bash の類いを vim 上で走らせるのはつらいのでは?
vim-shell などはあるが C-Z 使ってる
2020/07/20(月) 17:43:51.32
>>837
シェル側の問題の可能性があるなら別のシェル入れれば分かるんじゃないの
2020/07/20(月) 19:15:31.61
>>839
7.4で知識が止まってるのかよ
2020/07/20(月) 19:47:14.42
シェルの問題っぽかった。ごめんなさい。
2020/07/20(月) 20:03:24.37
>>841
neovimから逆輸入か何かがあっていい感じになったんだな?
調べることにする
2020/07/20(月) 20:37:34.25
>>839
結構良い感じだよ
このあたりとか有効に使ってる感がある
https://youtu.be/cWvAhmfZJZg?t=1218
2020/07/20(月) 20:38:12.80
20分18秒あたりから
連レスすまん
2020/07/20(月) 21:39:00.81
>>844
:vert term 気にいった
めちゃくちゃ楽になってる
2020/07/20(月) 23:17:33.81
>>844
ほんますごいな
2020/07/21(火) 00:32:07.15
プロンプトの表示内容とか色とかカスタマイズしてると:termでは表示が崩れたりするから結局普通にターミナル使うようになった
2020/07/21(火) 01:44:25.23
最近Vimを使いだしてvimtutorが終わった程度のレベルなんですけど
本家のGVimは存在しないのでしょうか?
2020/07/21(火) 01:59:30.85
>>849
Windows 版なら、公式ビルドがここに置いてあります

https://github.com/vim/vim-win32-installer/releases

Linux なら、各ディストリビューションのパッケージツールで検索してください
2020/07/21(火) 02:02:23.86
ごめんなさい
MacのほうのGVimです
2020/07/21(火) 02:10:45.64
>>851
Mac の事情には詳しくないのですが、
公式バイナリは存在しないようです

https://www.vim.org/download.php#mac

> The Macintosh binaries are not on the Vim ftp site.
> They are produced by a few Macintosh lovers.
> Often they lag behind a few versions.

MacVim を使うしかないかも?
853名無しさん@お腹いっぱい。
垢版 |
2020/07/21(火) 14:19:56.31
そうか :terminal か
>>831は :%term python でよかった
2020/07/21(火) 19:17:37.73
>>853
これめっちゃ楽だわ。thx
2020/07/21(火) 19:32:31.36
新時代
2020/07/21(火) 19:52:18.07
冗談抜きに隔世の感がある。
ちょっと前に「Vim8.0! 10年ぶりの更新!」って(良い意味で)騒がれてから機能追加されすぎじゃない?
まぁ便利になってるようだから良いけどさ。
2020/07/21(火) 20:09:08.93
8で追加されたg<C-a>の連番生成は重宝してる
2020/07/21(火) 21:11:03.40
>>846>>853
って組み合わせれる?853みたいなのを横に分割したいんだけど
859名無しさん@お腹いっぱい。
垢版 |
2020/07/21(火) 21:24:15.53
>>858
組み合わせられるよ

:vert %ter python
2020/07/22(水) 02:27:20.22
>>859
なるほどそうするのか
:%vert term pythonかと思ってた
2020/07/22(水) 10:10:49.24
最近のVimは素でHTTP通信ができるようになったんか……。
channelっていつ使うんだと思ってたが,これの為に存在するといってもいいな。
これからはcurlみたいな外部コマンドなしに
ネットワーク上のファイルを開けるようになりそう
2020/07/22(水) 10:54:59.10
Vimを自分でビルドするときに、
GUIは要らないけどOSクリップボード連携は有効にする、
みたいなことってできませんか。
できるとしたら./configureにどういうオプションを通したらよいでしょうか。
2020/07/22(水) 12:43:26.21
>>862
どうしてマニュアルを読まないのか
https://github.com/vim/vim#compiling
2020/07/22(水) 14:42:58.28
neovimでtermguicolorsを有効にすると、
コメントのitalicが効かなくなる?

highlight Comment cterm=italic
2020/07/22(水) 15:20:08.67
>>862
GUIを使わないだけならconfigureのオプションに--enable-gui=noつければいけますよ
GUIの有無はクリップボードとは関係ないので、もしクリップボードが有効にならない場合は別の原因ですね
2020/07/22(水) 15:24:45.83
>>861
netrwで最初からできるが
2020/07/22(水) 17:08:12.21
>>866
netrwってHTTP通信するとき外部コマンドに頼ってなかった?
g:netrw_http_cmdみたいな変数に指定してさ。
2020/07/23(木) 23:03:55.30
vとかで選択した範囲を取得できる専用の関数って存在しないんだな。
普通にあるだろと思ってずっと:help索いてた……
2020/07/23(木) 23:22:18.75
v-mode の時の : を押した時に自動保管されるアレなどで指定するぐらい
2020/07/24(金) 12:52:32.39
>>864
> highlight Comment cterm=italic

neovimでtermguicolorsを設定するとguiにしないといけないのね。
vimと違ってわかり難い。

highlight Comment gui=italic
2020/07/25(土) 01:03:09.71
自分用の補完リストをvim-lspで使いたいんですけど
参考になるプラグインか記事か何かありませんか?
2020/07/25(土) 01:33:27.26
>>871
:h complete-functions
2020/07/25(土) 03:56:10.97
>>872
はい、すでにその部分は実装して自分用に補完リストを作ってあります
vim-lspとの連携方法が分かりません
2020/07/25(土) 12:31:25.44
補完リストって言うのがなんのことを言ってるのか
自分用にLSP Serverを作ったって事?
2020/07/26(日) 23:44:19.45
>>844
補完とかシェル操作とかこれvim8だけで実現できるん?
2020/07/27(月) 10:31:17.00
>>875
補完に関してはVim7以前からできてなかったか?
自分で補完候補を生成する仕組みも,Vim8で新設された機能じゃないと思う。
2020/07/28(火) 08:21:00.98
補完ってC-pせずとも勝手に出せるのか
2020/07/28(火) 10:14:54.72
auto-comp系
2020/07/28(火) 20:56:41.10
rgとfzfである単語を検索して、マッチしたファイルとその単語のファイル内の位置情報から、その位置にカーソルをおいた状態でファイルをvimで開くzshスクリプトを書いた

この状態でカーソルを動かさず単語を検索してハイライトさせるところまでスクリプト化したいんだけど、どうすればええんやろ
単純にコマンドラインで検索した単語をvimに渡すと、カーソルを置いた場所の次に単語にマッチする場所にカーソルが飛んてましまう(´・ω・`)
2020/07/28(火) 21:07:14.25
ハイライト専用プラグインとか?
Plug 'crazymanjinn/MultipleSearch_solarized', {'on': 'Search'} "Search
2020/07/28(火) 21:12:33.06
https://github.com/haya14busa/vim-asterisk
アスタリスク検索の初回でカーソル動かさなくするプラグイン
882名無しさん@お腹いっぱい。
垢版 |
2020/07/28(火) 21:14:03.92
>>879
:set hlsearch | let @/ = 'ある単語'

https://vim-jp.org/vimdoc-ja/change.html#quote_/
> このレジスタは :let で変更できるので、'hlsearch' による強調表示を、実際に検
> 索を行わずに別のマッチに適用することができる。
2020/07/28(火) 21:23:41.44
ありがとう
let使うのが良さそうだから試してるわ
2020/07/29(水) 05:42:09.08
.viminfoが分割されるんだけど何が原因だろ
コマンド履歴が減ったと思ったらなぜか.viminf{pに移動してる
2020/07/29(水) 06:47:07.08
sudoか何かでパーミッション変わったんじゃないか
2020/07/29(水) 08:08:47.57
なんかこのスレか前スレでも似たような症状の人がいたな。
解決してたかどうか忘れたが。
2020/07/30(木) 06:48:14.20
起動時にカーソル動かさいないで単語検索してハイライトするの出来たわ
ありがとう

nvim $file_path "+call cursor($line_number, $column_number)" "+set hlsearch | let @/ = \"$search_words\""
2020/08/05(水) 09:47:11.80
Vimでシンタックスハイライトの設定に対するテスト機能ってありません?
「ある文書のここの部分は,xxxVariableNameという名前でハイライトされる」
みたいなことを自動で確かめたいんです。
2020/08/07(金) 10:07:40.51
なさげっすね
2020/08/11(火) 21:41:21.02
qfixhowmのサイトが404になってる…
たまにしか使わない操作とか調べるのに使ってたのに
ヘルプはhtmlの方が見やすいからないと不便
2020/08/13(木) 07:48:01.17
qfixhowm直してくれたみたいだけど、急いで変換したからかいろいろ崩れてるな。
前のバックアップはないのか。兎に角ありがとうございました。
892名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 18:08:10.52
コマンドがnormal mode から呼ばれたかvisual modeから呼ばれたか判定するにはどのようにしたらよいのでしょうか?
function! Test()<br/>
if(mode()=='n')<br/>
echo "n"<br/>
elseif(mode()=='v')<br/>
echo "v"<br/>
endif<br/>
endfunction<br/>
command! -range Test :call Test()<br/>
両方ともnが表示されてしまいます。
893名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 18:10:05.19
<br/>改行は無視してください
2020/08/16(日) 19:26:56.80
visualモードから呼ぶとき(コマンドラインモードに入るとき)には先頭に’<,’>が付くだけだからやりたいことによる
マッピングの最初に<C-u>を付けて余計なものを消すことはよくある
895名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 10:35:31.52
行いたい動作は下記のようなマッピングを使わずにコマンドで行いたいです
" open-browser.vim
let g:netrw_nogx = 1 " disable netrw's gx mapping.
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search)


下記のように書くと
選択している場合は選択している単語
選択してない場合はカソール下の単語
と切り替えができません。
何かいい方法をご存じでしたらご教授お願い致します。
command! -range GoogleSearch call openbrowser#_keymap_smart_search('v')
"command! GoogleSearch call openbrowser#_keymap_smart_search('n')
2020/08/17(月) 11:09:06.93
>>895
それをやってるプラグインがあった
https://github.com/voldikss/vim-translator/blob/575d88605182be5feaef4bf97e38de6b15e2db88/plugin/translator.vim#L42
https://github.com/voldikss/vim-translator/blob/575d88605182be5feaef4bf97e38de6b15e2db88/autoload/translator/util.vim#L121
2020/08/18(火) 09:26:29.86
>>896
ありがとうございます。参考になります。
簡単にできると思いましたがいろいろな場合分けが必要なのですね。
2020/08/18(火) 14:24:36.11
>>895
ちなみにnmap/vmapで実現すると何か問題が生じるの?

自分は似たような動作をそういう方法で実現してて,
よろしくない挙動が発生するんであれば修正したいから
教えて欲しい。
2020/08/18(火) 15:05:08.20
>>898
そのmapが分からなきゃ問題を指摘しようがないでしょ
2020/08/18(火) 18:35:01.66
>>899
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search)
2020/08/18(火) 19:02:08.31
>>898
nとvでマッピング先のコマンドを同じにする(したい)なら内部で判定するしかないしそれぞれのモード専用のコマンドを作ってマッピングするならそれでもいいんじゃない

openbrowserのことは知らないが単に文字列を渡したいだけならユーザーがどうするのかは好みの問題では
2020/08/18(火) 19:23:48.89
モード専用のコマンドというかrangeに対応してるかしてないかだな
コマンドを使うときに今は範囲指定したからrange対応版してないから通常版と判断したいかどうか
2020/08/19(水) 00:32:25.29
>>898
別に問題があるわけではないです
個人的な感性で申し訳ないのですが、ググるという動作はなんとなくコマンドのほうが直感的と思ったからです。
なぜか考えたのですが文章を編集するわけではないからですかね


あとマッピングは汚さず、できるだけvimデフォルトで行いたいと言うのもあるかもしれません
2020/08/19(水) 09:08:28.23
がっつりマッピング変えようかと思ったどそれ自体忘れるというジレンマ
2020/08/19(水) 09:33:12.08
Vimはテキストエディタというよりもテキストエディタエディタと化してる人もいるんじゃなかろうかw

メジャー所のマッピングは語っても仕方ないので、個人的に細かいんだけどよく使う便利マップは挿入モードで()を()<Esc>i にするマップ
{}とか[]とか""とかも同様にマッピングしてる
Shiftを外し遅れて次までShift付きになるのが嫌いで昔から()と連続入力してから中に打つ癖があるのですごい便利
分かる人には伝わると思うw
2020/08/19(水) 10:08:14.02
>>905
()<esc>iってスマホのIMEでよく見かけるやつか!いいやん!
こういう「細かくて地味だけどちょい便利マッピング」もっと欲しいw
2020/08/19(水) 10:11:26.54
暫く使ってない端末のvimの操作方法が分かりません!
2020/08/19(水) 10:33:01.20
あんまり基本機能的な部分でマッピングしすぎるとそうなるよね
まあvimrcを持ち歩けば大体はカバー出来るけど環境によってはそれをインポートする術がない可能性もあるからなあ
そんな状況に当たったことはないけど他人の環境でカスタマイズされ過ぎたVimが思い通りに動かなくて少し困ったという逆の経験はあるわ
2020/08/19(水) 12:17:08.09
Vimのスクリプトじゃなくて本体で対応して欲しい機能が
選択範囲の文字列で検索すること

いまのところスクリプトで実現しようとすると
https://vim.fandom.com/wiki/Search_for_visually_selected_text
ここにある通りレジスタを一つ潰さざる得ないから時偶困る。
2020/08/19(水) 19:23:57.88
それF1にマッピングしていつも使ってる
2020/08/25(火) 00:16:03.86
neovimでdeinを使っています。
neovimを開いて下記コマンドをたたいてもステータスラインがでません。
set laststatus=2
しかし、インサートモードにするとステータスラインが出ます。
何か原因の推測はできますでしょうか?

dein_lazy.tomlは次レス↓
2020/08/25(火) 00:17:04.13
# dein_lazy.toml その1
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_source = '''
let g:deoplete#enable_at_startup = 1
inoremap <expr><tab> pumvisible() ? "\<C-n>" : "\<tab>"
" Expand the completed snippet trigger by <CR>.
imap <expr><CR>
\ (pumvisible() && neosnippet#expandable()) ?
\ "\<Plug>(neosnippet_expand)" : "<C-r>=<SID>my_cr_function()<CR>"

function! s:my_cr_function() abort
return deoplete#close_popup() . "\<CR>"
endfunction

'''
on_event = 'InsertEnter'
[[plugins]]
repo = 'Shougo/neco-syntax'
on_event = 'InsertEnter'
2020/08/25(火) 00:17:35.53
# dein_lazy.toml その2

[[plugins]]
repo = 'Shougo/neosnippet'
hook_source = '''
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
xmap <C-k> <Plug>(neosnippet_expand_target)
if has('conceal')
set conceallevel=0 concealcursor=niv
endif
'''
on_event = 'InsertEnter'
depends = ['neosnippet-snippets']

[[plugins]]
repo= 'Shougo/neosnippet-snippets'

[[plugins]]
repo = 'davidhalter/jedi'
on_ft = 'python'
2020/08/25(火) 03:40:47.32
とりあえず `:verbose set laststatus` してどこかで値が上書きされていないかくらい確認してみたらいいんじゃない
それ以上はプラグインの Issue でやってくれ
915912
垢版 |
2020/08/25(火) 11:14:38.01
>>914

コメントありがとうございます。
そちら確認したところ、init.vimでセットされ意図した通りでした。

それと今解析していてdeinそのものを読まないようにしましたが、挿入モードの時だけステータスラインが表示され、コマンドモードに戻ると消えます。

コマンドモードでも表示するには何か設定が必要でしょうか?
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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