I open ibuffer then I execute to kill modified buffer or special buffer like multi-term. It is still asked to prompt.
It is not ibuffer
that is prompting you in these cases.
Your multi-term buffer will be running a process so, when ibuffer tries to kill that buffer, Emacs will ask if you are sure you want to kill the process.
Similarly, when ibuffer tries to kill a modified buffer which is visiting a file, Emacs will ask if you are sure you want to do that, as you will lose your modifications.
C-hf kill-buffer
tells us:
The functions in ‘kill-buffer-query-functions’ are called with the
buffer to be killed as the current buffer. If any of them returns nil,
the buffer is not killed. The hook ‘kill-buffer-hook’ is run before the
buffer is actually killed. The buffer being killed will be current
while the hook is running. Functions called by any of these hooks are
supposed to not change the current buffer.
C-hv kill-buffer-query-functions
shows that it contains the function process-kill-buffer-query-function
which will "Ask before killing a buffer that has a running process."
If you're really sure you want to, you can disable that with:
(remove-hook 'kill-buffer-query-functions 'process-kill-buffer-query-function)
Note that this doesn't only affect ibuffer. Anything that kills a buffer is affected.
To kill a modified file-visiting buffer without being prompted, you may need to write a kill-buffer-query-functions
function which sets the buffer as un-modified. I wouldn't recommend doing this.