I type in the function without brackets, although in many cases they will call primitive functions you can't edit easily and/or methods e.g.
> subset
#function (x, ...)
#UseMethod("subset")
#<bytecode: 0x10a2da720>
#<environment: namespace:base>
> subset.data.frame
#function (x, subset, select, drop = FALSE, ...)
#{
# ....etc...
#}
#<bytecode: 0x10a2d9398>
#<environment: namespace:base>
If you want to edit the code you can copy-paste it into your own function (for above perhaps my_subset())
Works for functions in packages too, e.g.
> dplyr::add_count
#function (x, ..., wt = NULL, sort = FALSE)
#{
# g <- group_vars(x)
# grouped <- group_by(x, ..., add = TRUE)
# out <- add_tally(grouped, wt = !!enquo(wt), sort = sort)
# grouped_df(out, g)
#}
#<bytecode: 0x10fc471f8>
#<environment: namespace:dplyr>