Mencari kata dalam vim?

145

Saya dapat mencari kata di vim dengan /word. Bagaimana saya bisa mencari hanya word, mengecualikan pencarian untuk word1dan word2?

kal
sumber
2
Kemungkinan duplikat untuk menemukan pasangan yang tepat di vim
LSchueler

Jawaban:

207

seperti ini:

/\<word\>

\<berarti awal kata, dan \>berarti akhir kata,

Menambahkan komentar @ Roe:
VIM menyediakan jalan pintas untuk ini. Jika Anda sudah memiliki kata di layar dan Anda ingin menemukan contoh lainnya, Anda dapat meletakkan kursor pada kata dan tekan '*'untuk mencari maju dalam file atau '#'untuk mencari mundur.

Nathan Fellman
sumber
3
menempatkan kursor Anda di atas kata dan menekan * (maju) atau # (mundur) adalah jalan pintas
falstro
1
mengapa ini menguntungkan vs hanya melakukan: / kata
jimh
3
@semja: katakanlah Anda memiliki variabel 'data' dan indikasi validnya 'data_valid'. Jika saya ingin mencari hanya 'data' tetapi bukan 'data_valid', maka '/ data' tidak akan melakukan pekerjaan. Saya perlu memberi tahu vim di mana harus berhenti mencocokkan pola.
Nathan Fellman
Ini gagal dalam contoh berikut: 1word1Lihat stackoverflow.com/a/22148017/2609994 untuk solusi.
LSchueler
Apakah ada vimkonfigurasi untuk membuatnya mencari kata yang tepat tanpa membungkus string pencarian dengan \<dan \<karakter?
truthadjustr
77
  1. nama file vim
  2. tekan /
  3. ketikkan kata yang ingin Anda cari
  4. tekan enter
Mushir
sumber
2
Bisakah seseorang menjelaskan mengapa ini mungkin menerima suara turun? Bekerja untukku.
Kiee
13
Karena OP diminta mencari secara khusus "word". Solusi yang diposting di sini pada dasarnya melakukan pencarian %word%, baik itu thiswordisawesomeatau word56atau 26word.
Jguy
9
Juga, karena OP secara eksplisit menyatakan bahwa mereka tahu tentang /perintah. Karena itu, jawaban ini sama sekali tidak membantu.
cmaster - mengembalikan monica
27

Jika Anda bekerja di Ubuntu, ikuti langkah-langkahnya:

  1. Tekan /dan ketik kata untuk mencari
  2. Untuk mencari maju, tekan tombol 'SHIFT' dengan *tombol
  3. Untuk mencari mundur tekan tombol 'SHIFT' dengan #tombol
Priya R
sumber
1
bagaimana saya bisa menyorot kata yang dicari?
jorge saraiva
3
@ jorgesaraiva: Pertama-tama, Anda mungkin akan mendapatkan jawaban lebih cepat dengan mengajukan pertanyaan baru (daripada menunggu seseorang menemukan komentar ini 3 bulan setelah Anda menanyakannya). Kedua, Anda dapat melakukannya :set hlsdi Vim untuk menyorot hasil pencarian Anda. Untuk mematikan sorotan, lakukan:set nohls
Nathan Fellman
1
Ini benar-benar hanya berfungsi jika hasil pertama dari melakukan /wordadalah tepatnya wordbukanword.+
pushkin
ini tidak berfungsi untuk saya pada instance AWS ubuntu 18.04. menggunakan windows git-bash untuk ssh ke server ubuntu jika itu relevan. aneh.
CodingMatters
21

Untuk pencarian dasar:

  • / pattern - cari maju untuk pola
  • ? pola - cari mundur
  • n - ulangi pencarian maju
  • N - ulangi mundur

Beberapa variabel yang mungkin ingin Anda atur:

  • : set ignorecase - case sensitif
  • : set smartcase - gunakan case jika ada tutup yang digunakan
  • : set incsearch - tampilkan kecocokan sebagai pencarian
NeeruKSingh
sumber
3
Ini bukan yang diminta OP.
Semua Pekerja Penting