diff --git a/README.md b/README.md
index 5e96d02..3ddda94 100644
--- a/README.md
+++ b/README.md
@@ -108,7 +108,7 @@ vim.keymap.set('n', '<leader>crp', ':CRProjects<CR>', { noremap = true, silent =
 
 ### Options
 
-- `mode`: Mode in which you want to run(default: term, valid options: `{"toggle", "float", "tab", "toggleterm", "buf"}`),
+- `mode`: Mode in which you want to run(default: term, valid options: {"toggle", "float", "tab", "toggleterm"}),
 - `focus`: Focus on runner window(only works on toggle, term and tab mode, default: true)
 - `startinsert`: init in insert mode(default: false)
 - `term`: Configurations for the integrated terminal
@@ -153,7 +153,7 @@ Note: A common mistake code runners make is using relative paths and not absolut
 
 ```lua
 require('code_runner').setup {
-  -- choose default mode (valid term, tab, float, toggle, buf)
+  -- choose default mode (valid term, tab, float, toggle)
   mode = 'term',
   -- Focus on runner window(only works on toggle, term and tab mode)
   focus = true,
diff --git a/lua/code_runner/commands.lua b/lua/code_runner/commands.lua
index b0b1575..4c1accc 100644
--- a/lua/code_runner/commands.lua
+++ b/lua/code_runner/commands.lua
@@ -114,10 +114,8 @@ local function execute(command, bufname, prefix)
   local set_bufname = "file " .. bufname
   local current_wind_id = vim.api.nvim_get_current_win()
   close_runner(bufname)
-  if prefix ~= "bufdo" then
-    prefix = prefix .. " |"
-  end
-  vim.cmd(prefix .. " term " .. command)
+  vim.cmd(prefix)
+  vim.fn.termopen(command)
   vim.cmd("norm G")
   vim.opt_local.relativenumber = false
   vim.opt_local.number = false
@@ -170,9 +168,6 @@ M.modes = {
   tab = function(command, bufname)
     execute(command, bufname, "tabnew")
   end,
-  buf = function(command, bufname)
-    execute(command, bufname, "bufdo")
-  end,
   toggleterm = function(command, ...)
     local tcmd = string.format('TermExec cmd="%s"', command)
     vim.cmd(tcmd)