In my source code, it has the following for example:

```
menu = add_menu_item ((char **)HW_KIND, 21);
.
.
if(get_idx_by_str ((char **)HW_KIND, prev->column_section, 21, 0) < get_idx_by_str ((char **)HW_KIND, curr->column_section, 21, 0))
.
.
fprintf(fp, "# %d floor\n%d@%d\n\n", i, get_idx_by_str ((char **)HW_KIND, section->column_section, 21, 0), stop->stop_landing);
.
.
add_text_to_gtk_text_buffer (text_buffer, iter, NULL, -99, -99, "??????????Ե -- %s\n", HW_KIND[steel_col_data.sec_idx]);

```

I wanted to find all the sentences having exactly key `HW_KIND` then also `21` and then change `21` to `20`. For example, the first three sentences above match the searching condition but the last one above doesn't.

If in a terminal in Linux, `grep "\<HW_KIND\>" foo.c | grep 21` will find all occurrences. How to define the substitute command in **Vi** editor?

Thank you.