Skip to content

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

136 Commits

Folders and files

Repository files navigation

Teleport.nvim

Straightforward file marking and buffer navigation plugin
Teleport logo

Lua Neovim

Install

Lazy
{"Boofny/teleport.nvim"}
or by other means use the url
https://github.com/Boofny/teleport.nvim.git

Some caveats


  1. Need git installed
  2. File marks can be used on non git repo projects BUT will not be saved for later use
  3. If a git project is moved to a different directory the saved marks will reset and can be altered in ~/.local/share/nvim/teleport/
  4. the following code should be placed in your configs init.lua BEFORE the plugins require module in order to get this plugin working correctly
vim.cmd("delmark ABCD") 

Here is the setup and keybindings i use

local tele = require("teleport")

vim.keymap.set("n", "<leader>a", tele.add_mark)
vim.keymap.set("n", "<leader>t", tele.list_mark_files)

vim.keymap.set("n", "<leader>1", function() tele.nav:nav_mark(1) end)
vim.keymap.set("n", "<leader>2", function() tele.nav:nav_mark(2) end)
vim.keymap.set("n", "<leader>3", function() tele.nav:nav_mark(3) end)
vim.keymap.set("n", "<leader>4", function() tele.nav:nav_mark(4) end)

-- tab iteration
vim.keymap.set("n", "<A-n>", function() tele.nav:next() end)
vim.keymap.set("n", "<A-p>", function() tele.nav:prev() end)

-- select picker
vim.keymap.set("n", "<leader>gt", tele.find_marks) 

-- optional mark override for file pos
vim.keymap.set("n", "<leader>k1", function() tele.add_mark_override(1) end)
vim.keymap.set("n", "<leader>k2", function() tele.add_mark_override(2) end)
vim.keymap.set("n", "<leader>k3", function() tele.add_mark_override(3) end)
vim.keymap.set("n", "<leader>k4", function() tele.add_mark_override(4) end)

Customization

local tele = require("teleport")

-- default opts
tele.setup({
  preselect = false, -- keeping cursor on current mark when opening menu
  border = "single", -- border for the main list 
  position = "center", -- top, center, bottom center being default
  preview_length = 50, -- previewing files length
  save_warning = true, -- get a reminder that marks are not saved in non git repos
  file_modify_status = true, -- show [+] modify status inline the list_mark_files menu
  file_git_status = true, -- showing XY of git status inline the the list menu
  file_git_status_color = true, -- XY git status symbols being colored in
  exclude = {} -- paths to programs that are excluded from marks 
  -- must have no trailing slash in full path ex: /home/<owner_name>/project_name
})

Lualine status example

{
function ()
    local ok, teleport = pcall(require, 'teleport.markings')
    if not ok then return '' end

    local current = teleport.status_line_current_mark() -- just returns mark 1..4 or -1 for a non mark

    if current == -1 then
      return ''
    end

    return "T: " .. current
end
},

Important commands

Command Description
:AddMark Add a new mark at the cursor position
:ClearMarks Remove all marks
:ListMarkFiles List files using marks
:FindMarks Search marks
:ManageTeleport Open the UI to manage marks

More comprehensive docs

In neovim type the help command

:help teleport

Or go to the doc file

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages